学习笔记
个人认为学会一门语言应当遵循一些顺序
- 基础语法
- 数组
- 面向对象
- 标准库和第三方库
另外还需要学习
- 依赖管理
- 框架,发送请求,进阶管理
基本上把这几项搞定就能开始干活了,对于 Go语言基础语法,没有找到一个合适的学习路径,写的多了自然就记住了。
- 引入依赖,标准输出
go语言不加分号,import 括号内是引入的包名称,fmt应该表示的是标准库。
- 定义变量
代码中可以看出go语言的变量可以不表明类型,如果想要表明则在变量名后跟随,可以不给定初始值 可以+拼接字符串,与python同样没有字符char类型,而全用string类型替代。需要用到字符的时候例如s[0]会自动转化成int或者byte,const表示常量定义基本同上。
go语言中约定俗成了大写表示公有,小写表示私有。
- for循环
竟然没有while的说法。 不写条件变成死循环。
4.if语句
可以在判断前加上一点奇奇怪怪的语句,语法是比较怪异的。不过设计的初衷大概是减少新的变量定义吧。
- switch 语句
switch后面可以加两三个,而且不需要写break,还是挺方便的。
- array
- slice
s := make([]string, 3)
s[0] = "a"
s[1] = "b"
s[2] = "c"
fmt.Println("get:", s[2]) // c
fmt.Println("len:", len(s)) // 3
s = append(s, "d")
s = append(s, "e", "f")
fmt.Println(s) // [a b c d e f]
c := make([]string, len(s))
copy(c, s)
fmt.Println(c) // [a b c d e f]
fmt.Println(s[2:5]) // [c d e]
fmt.Println(s[:5]) // [a b c d e]
fmt.Println(s[2:]) // [c d e f]
good := []string{"g", "o", "o", "d"}
fmt.Println(good) // [g o o d]
可变长数组,需要用make获取空间,定义时还可以加一个属性,表示一步跳跃的长度。使用时可以直接当数组使用。copy是一个内置函数可以进行复制。