![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go
文章平均质量分 54
进阶的工程师
菜鸡程序员
展开
-
Go的method和interface
在学习Go语言的过程中,基本的语法以及slice和map等等虽然略有不同,但是稍微适应下,还是比较好上手,这里针对几个特别的地方总结下。第一篇就是Go的方法和接口。方法 Go语言不存在类的概念,所以方法与函数的区别就是方法存在接收者。接受者在 func 关键字和 方法名之间,下面就是两个例子。type Vertex struct { X, Y floa...原创 2018-08-14 00:22:03 · 177 阅读 · 0 评论 -
golang中Defer、Panic、Recover的用法
因为golang没有try……catch的用法,但是可以通过defer + recover来实现,但是要先明确defer与return之间的执行顺序。defer先看defer的定义(参考tour go)。defer关键字可以推迟它所修饰的语句的执行,知道被它包围的代码执行完成后,才执行,一般用于执行一些清理工作(资源释放、关闭连接等等)来简化代码。可以看下面一段代码,代码打开两个文件并...原创 2018-10-24 01:21:31 · 581 阅读 · 1 评论 -
通过rand把数组顺序随机打乱
这周需求涉及到要把一个数组的内部顺序打乱,参考了下网上的资料,其实很简单,就是把数组元素随机交换下就OK了,下面附上go实现的代码,func Random(arr []string) { if len(arr) <= 0 { return } rand.Seed(time.Now().Unix()) for i := len(arr) - 1; i >= 0; i--...原创 2018-11-04 00:09:09 · 1839 阅读 · 0 评论 -
go Map实战
map是最常见的数据结构之一。不同哈希表的实现也提供了不同特性,但是总体来说它们都提供快速查询、添加和删除等功能。Go 提供了一个内置的map,基于哈希表来实现。声明和初始化go里面的map定义如下,map[KeyType]ValueTypeKeyType可以是任何可以进行比较的数据类型,ValueType则可以是任何数据类型,包括map。下面定义了一个KeyType为strin...原创 2018-11-07 01:06:46 · 164 阅读 · 0 评论 -
Golang占位符大全
golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。# 定义示例类型和变量type Human struct { Name string}var people = Human{Name:"zhangsan"}普通占位符占位符 说明 举例 ...原创 2018-11-12 00:09:57 · 1418 阅读 · 0 评论 -
Effective Go
Switchtype switch通过type switch可以来动态发现interface的类型。下面的type switch使用类型断言,关于switch以及类型判断,可以借鉴下下面的代码。var t interface{}t = functionOfSomeType()switch t := t.(type) {default: fmt.Printf("unexp...原创 2018-11-12 01:05:05 · 389 阅读 · 0 评论 -
Go可变参数遇到的坑
可变参数Go语言支持可变参数,给函数传参带来了很大的便利,简化了slice类型参数传入。代码示例,func main(){ printFunc("name", "age") printFunc([]string{"name", "age"}...)}func printFunc(args ...string){ fmt.Printf("args=%v, type=%T\n", ar...原创 2019-10-03 19:28:41 · 490 阅读 · 0 评论