Golang里面的switch结构
Golang里面的switch结构和C和C++十分类似,唯一一个很大的不同点就是在Golang里面的switch不用加break就可以跳出分支。
a := 2
switch a {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
case 4, 5:
fmt.Println("four or five")
default:
fmt.Println("other")
}
t := time.Now()
switch { //这里可以不写变量名称 可以利用这点来模拟if-else嵌套
case t.Hour() < 12:
fmt.Println("it's brfore noon")
default:
fmt.Println("it's after noon")
}
Golang当中的数组
var a [5]int //定义数组
a[4] = 100 //向数组指定位置写入值
fmt.Println(a[4], len(a)) //输出对应位置中的数组的值
Golang中的切片
切片不同于数组,你可以在任意时刻更改切片的长度,同时他也拥有比数组更多难绷的处理方法。
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([]srting, len(s))
copy(c, s)
fmt.Println(c) //[a b c d e f] 将切片s复制给新生成的切片c
//切片还有类似python的语法
fmt.Println(s[2:5]) //[c d e]
map的数据插入代码如下:
map_variable["mars"] = 27 1 插入过程如下:
根据key值计算出哈希值 取哈希值低位和hmap.B取模确定bucket位置 查找该key是否已经存在,如果存在则直接更新值 如果没有找到key,则将这一对key-value插入 3.11.2 删除数据 delete(map, key) 函数用于删除集合的元素, 参数为 map 和其对应的 key。删除函数不返回任何值。相关代码如下:
countryCapitalMap := map[string] string {"France":"Paris","Italy":"Rome","Japan":"Tokyo","India":"New Delhi"} /* 删除元素 */ delete(countryCapitalMap,"France");