这是我参与「第五届青训营 」伴学笔记创作活动的第1天。
补一下go语法的笔记。
1.变量声明
变量声明有三种方式
var a = val
a := val
const a = val
(声明常量,常量会根据上下文自动确定类型)。
2.if else
if后面没有括号。
3.for
for {
}
定义一个死循环。
for i := 1; i <=10; i++ {
}
定义一个c风格的循环。
4.数组
4.1定长数组
var a [5]int
定义一个长度为5的int数组。
4.2切片
s := make([]string, 3)
定义一个切片。
s = append(s, "d")
为切片追加元素。
s[2:5]
python风格的slice。
4.3遍历
for index, val := range array {
}
5.map
注意:map中的元素无顺序。
m := make(map[string]int)
定义一个map,key类型string,value类型int。
r, ok := m["unkonwn"]
ok指示是否成功取到值。
delete(m, "one")
进行删除。
for key, value := range m {
}
进行遍历。
6.字符串
有很多字符串相关的标准库函数。
7.json操作
对一个已有的结构体,若其每个字段的开头都是大写,便可以用json.Marshal()将其序列化为一个buf数组(是一串编码,但可以类型转换为string来变成可以阅读的json),这样的buf数组可以用json.Unmarshal()反序列化为一个结构体。结构体中的字段后面加一个json的tag可以让其在输出时变为小写。
8.时间操作
了解time库。
9.字符串与数字的转换
了解strconv库。