Go语言基础|青训营笔记
这是我参与「第五届青训营 」伴学笔记创作活动的第 19天
在大项目即将开始之际,复习之前的学习的内容。Go语言的语法与C++、Python有一定相似性,所以特别记住了一些比较重点的。
map
在其他语言里也可以找到它的身影,可以叫做“字典”、“哈希”
map里需要两个类型,一个是key,一个是value
创建map一般有两种方法:
(1)可以先用make创建一个空的map,然后再设置其值
(2)直接定义一个map和其值
有创建当然也要有删除,可以用delete删除键值对
下面是演示的代码:
func Map() {
m := make(map[string]int)
m["one"] = 1
m["two"] = 2
fmt.Println(m)
fmt.Println(len(m))
fmt.Println(m["one"])
fmt.Println(m["unknow"])
r, ok := m["unknow"]
fmt.Println(r, ok)
delete(m, "one")
m2 := map[string]int{"one": 1, "two": 2}
var m3 = map[string]int{"one": 1, "two": 2}
fmt.Println(m2, m3)
}
输出结果为:
值得一提的是,go语言里面的map是完全无序的,遍历时是完全随机,而不是按加入顺序或者字母顺序
range
对于一个slice或者上面提到的map,我们可以用range对其快速遍历,使代码更加简洁。对于数组,range会返回两个值,一个是索引,一个是对应索引位置的值;如果不需要索引时,可以用下划线来忽略
下面是实验的代码:
func Range() {
nums := []int{1, 2, 3, 4}
sum := 0
for i, num := range nums {
sum += num
if num == 2 {
fmt.Println("index:", i, "num:", num)
}
}
fmt.Println(sum)
m := map[string]string{"a": "A", "b": "B"}
for k, v := range m {
fmt.Println(k, v)
}
for k := range m {
fmt.Println("key", k)
}
}
运行结果如下:
相比于传统的遍历,用range进行遍历会更方便,代码也会更简洁。