phper 的Goland学习之路--- MAp
1、map的定义:
(1)不初始化:
var m map[k的数据类型]v的数据类型 ; // go编译器自动初始化,初始值是nil
(2)定义的同时,初始化 :
m := map[k 的数据类型 ] v的数据类型{ key : value };
如:m := map[string]int{ "age": 20 , "height" : 30}
(4)make创建map:
m2 := make( map[k_type] v_type); // m2 == empty map
(5)map的嵌套:
map[k 数据类型 ]map[ k2 的数据类型 ] v的数据类型
如: map[string]map[int]string{ "stu1" : {12 : "name"} }
注意:map类似php的关联数组 , map中的k是无序的,类似无序集合,属于哈希map
(6)遍历map:
for k,v := range m{ fmt.Println(k,v); }
(7)获取k对应value值:
在php中,当你获取数组中不存在的下标对应的值时,会报错:下标不存在;
但是,在go语言中,当你获取map中下标k对应的v时,如果k不存在,会返回空字符串;并不会报错
如何判断某个k是不是存在于map中???
if v , ok := m[k] ; ok{ fmt.Println(v);}else{ fmt.Println("%s 下标不存在",k)}
// k存在map中,ok为true;k不存在,ok为false
(8)删除k和对应的值: delete(m,k )
总结: