在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
0. Go语言书单
1. 文本注释
2. 变量赋值
3. 变量定义 var name = "alex"
4. 变量类型转换 string to int64 int to string int64 to string
5. 变量类型判断
6. Go 程序是通过package来组织的
7. Go 语言中,使用大小写来决定该 函数名首字母小写即为 private:
8、交换两个变量的值
9、空白标识符
10、unsafe.Sizeof()
函数传递参数:
12、 * 与 &
13、 Go 语言方法与函数的区别 func (c Circle) getArea() float64 { func main() { 函数将变量作为参数: Function(recv) 注意: Go语言不允许为简单的内置类型添加方法。
14、Go 语言面向对象 func (a Person) foo(){ // 接受者写在函数名前面的括号里面 func main() {
15、Go 语言接口
16、Go 格式化输出 布尔值: 整数: 字符串和[]byte: 指针:
17、Go routine and channel https://blog.csdn.net/skh2015java/article/details/60330785
18、生成时间戳 startTime = time.Now() ——> time.Now().Sub(startTime)
19、Go 语言标准库 https://studygolang.com/pkgdoc
20、Map Chan变量赋值+判断 如果map查找、类型断言或Chan接收出现在赋值语句的右边,它们都可能会产生两个结果,有一个额外的布尔结果表示操作是否成功: v, ok := m[key] // map lookup v, ok := x.(T) // type assertion v, ok := <-ch // channel receive
21、Log模块 https://studygolang.com/articles/9184
22、遍历array或Slice的三种方式
arr3 := [...]int{2, 4, 6, 8, 10} // 三种遍历数组的方式 for i:=0; i<len(arr3); i++ { fmt.Println(arr3[i]) } for i := range arr3 { fmt.Println(arr3[i]) } for i, v := range arr3 { fmt.Println(i, v) }
23、生成随机数 生成任意随机数 rand.Int() //生成一个随机int类型 rand.Int31() //生成一个随机int32类型 rand.Int63() //生成一个随机int64类型 生成指定区间的随机数 //尾数带n的版本则生成[0,n)的随机数。 // 该函数设置随机种子 // 若不调用此函数设置随机种子,则默认的种子值为1,由于随机算法是固定的, // 如果每次都以1作为随机种子开始产生随机数,则结果都是一样的,因此一般 // 都需要调用此函数来设置随机种子,通常的做法是以当前时间作为随机种子 // 以保证每次随机种子都不同,从而产生的随机数也不通 func main() { rand.Seed(time.Now().Unix()) for i:=0; i<10; i++ { fmt.Println(rand.Intn(100)) } }
24、数组和Slice的传递问题 arr1 := [...]int{10,20,30} // 数组是值传递 arr2 := arr1 arr2[0] = 200 // slice是引用传递,slice本身没有数据,是对底层array的一个view arr3 := arr1[:] arr3[0] = 100 fmt.Println(arr1, arr2, arr3)
25、Go包管理 github地址:https://github.com/gpmgo/gopm install go package manager: usage:
也可以直接在github上下载 git clone https://github.com/rcrowley/go-metrics /Users/shongbing/go/src/github.com/rcrowley/go-metrics
26、golang 包依赖管理 godep 使用 https://studygolang.com/articles/9877
|
请发表评论