[keytype]
和 valuetype
之间允许有空格,但是 gofmt 移除了空格)Key()
和 Hash()
方法,这样可以通过结构体的域计算出唯一的数字或者字符串的 key。map1[key1]
就是对应 key1 的值,就如同数组索引符号一样(数组可以视为一种简单形式的 map,key 是从 0 开始的整数)。map1[key1] = val1
。v := map1[key1]
可以将 key1 对应的值赋值给 v;如果 map 中没有 key1 存在,那么 v 将被赋值为 map1 的值类型的空值。len(map1)
方法可以获得 map 中的 pair 数目,这个数目是可以伸缩的,因为 map-pairs 在运行时可以动态添加和删除。map literals
的使用方法: map 可以用 {key1: val1, key2: val2}
的描述方法来初始化,就像数组和结构体一样。var map1 = make(map[keytype]valuetype)
。map1 := make(map[keytype]valuetype)
。mapCreated := make(map[string]float32)
。mapCreated := map[string]float32{}
。mapCreated["key1"] = 4.5
的时候,编译器会报错:func() int
作为值的 map:map[1:0x10903be0 5:0x10903ba0 2:0x10903bc0]
: 整形都被映射到函数地址。capacity
,就像这样:make(map[keytype]valuetype, cap)
。例如:[]int
类型或者其他类型的切片,就可以优雅的解决这个问题。