Go语言数组和切片
数组
数组声明
var v = [...]int{1, 2, 4, 5, 7}
var arr [5]int
arr[0] = 1
arr[1] = 2
fmt.Printf("%v", arr)
声明并初始化
var arr1 = [5] int {1,2,3,4,5}
arr2 := [5] int{1,2,3,4,5}
使用len获取数组的长度
数组遍历
arr2 := [5]int{1, 2, 3, 4, 5}
for _, value := range arr2 {
fmt.Printf("%v\n", value)
}
切片
没有长度的数组称为切片
var num [] int
num := make([] int ,len,cap)
len返回切片的长度,cap返回切片的容量 一个 slice 由三个部分构成:指针 、 长度 和 容量 。指针指向第一个 slice 元素对应的底层数组元素的地址,要注意的是 slice 的第一个元素并不一定就是数组的第一个元素。长度对应 slice 中元素的数目;长度不能超过容量,容量一般是从 slice 的开始位置到底层数据的结尾位置。简单的讲,容量就是从创建切片索引开始的底层数组中的元素个数,而长度是切片中的元素个数
切片的使用
下标获取或截取
arr := []int{1, 2, 3, 4, 5}
fmt.Printf("arr[0]: %v\n", arr[0])
fmt.Printf("arr[0:4]: %v\n", arr[0:4])
fmt.Printf("arr[2:]: %v\n", arr[2:])
追加
arr = append(arr,6)
删除
arr = append(arr[:2], arr[3:]...) //删除中间某个元素
fmt.Printf("%v", arr)
arr = append(arr[:len(arr)-1]) //删除最后一个元素
fmt.Printf("%v", arr)
Map
map 是散列表(哈希表)的引用。它是一个拥有键值对元素的无序集合,在这个集合中,键是唯一的,可以通过键来获取、更新或移除操作。无论这个散列表有多大,这些操作基本上是通过常量时间完成的
var scores= map[string]int{"语文":60}
var info1 = map[string]string{"name": "tom", "age": "20"}
//方式2
info := make(map[string]string)
info["name"] = "TOme"
fmt.Printf("%v", info)
fmt.Printf("%v", info1)
map操作
追加
scores["数学"] =80
更新
scores["语文"] =70
删除
delete(scores,"数学")
判断Key是否存在
_, ok := scores["语文"]
fmt.Println(ok)
遍历
for _, v := range scores {
fmt.Printf("%v",v)
}
Go语言数组和切片
http://www.jcwit.com/article/124/