书接上回,更多内容请移步主页查看“后端技术学习总结|青训营”系列。
Go语言语法初步讲解
- array数组(不常用,该模块只给出2个定义示例)
func main(){
//定义数组
var a[5]int
//定义数组并赋值
b := [5]int{1,2,3,4,5}
}
- slice切片。相当于无长度限制的数组,使用make来创建
func main() {
//创建切片s
s := make([]string, 3)
s[0] = "a"
s[1] = "b"
s[2] = "c"
//获取切片中的s0和s1元素,逗号会自动将内容拼接到一起
fmt.Println("get:", s[0], s[1]) //输出“get: a b”
//获取切片的长度
fmt.Println("len:", len(s)) //输出“len: 3”
//往切片中添加元素d,e,f
s = append(s, "d")
s = append(s, "e", "f")
fmt.Println(s) //输出“a b c d e f”
//复制切片s到c中
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]
}
- map哈希,存储了键/值(key/value)的集合。个人理解:类似于一一绑定的数组,每个位置的名字可以定义。
func main() {
//创建map结构,多个“map”多个“String”
m := make(map[string]int)
m["one"] = 1
m["two"] = 2
fmt.Println(m) // map[one:1 two:2]
fmt.Println(len(m)) // 2
fmt.Println(m["one"]) // 1
fmt.Println(m["unknow"]) // 0
//???
r, ok := m["unknow"]
fmt.Println(r, ok) // 0 false
//删除方法
delete(m, "one")
//另种定义方法(和数组类似)
m2 := map[string]int{"one": 1, "two": 2}
var m3 = map[string]int{"one": 1, "two": 2}
fmt.Println(m2, m3) //最后打印出来是一样的“map[one:1 two:2]”
}
存疑内容:r,k所在行意义不明,如有知情者还请大佬指定迷津!