go语法基础|青训营笔记

30 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第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库。