go 语言学习笔记⑦----映射(map)
go 语言学习笔记⑦----映射(map)键值对,映射(类c++中的map )
map[keyType]valueType
keyType 不可以是切片了, 函数以及包含切片的结构类型
eg mp := map[int]string{}
无序存储
只有len没有cap
package main import ( "fmt" ) func main() { mp := map[int]string{} mp[1] = "111" fmt.Println(mp[1]) //111 mp[2] = "222" fmt.Println(len(mp)) //2 }make
通过make创建mp := make(map[int]string)
制定长度(容量)里面无数据mp := make(map[int]string, 2)
如果key已经存在, 修改对应value
如果key不存在, 创建key值为value
自动扩容
for key , value := range map {
}
range第一个返回的是键 , 第二个是值
package main import ( "fmt" ) func main() { mp := map[int]string{1: "111", 2: "222"} for key, value := range mp { fmt.Println(key, value) } }是否存在
value , ok = mp[1]
第一个是value第二个是boolean
package main import ( "fmt" ) func main() { mp := map[int]string{1: "111", 2: "222"} value, ok := mp[1] fmt.Println(value, ok) //111 true value, ok = mp[4] fmt.Println(value, ok) // false }删除
delete(变量名, 值)
package main import ( "fmt" ) func main() { mp := map[int]string{1: "111", 2: "222"} fmt.Println(len(mp)) //2 delete(mp, 1) fmt.Println(len(mp)) //1 }做函数参数
package main import ( "fmt" ) func deleteMap(m map[int]string) { delete(m, 1) } func main() { mp := map[int]string{1: "111", 2: "222"} fmt.Println(len(mp)) //2 deleteMap(mp) fmt.Println(len(mp)) //1 }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)