GO语言基础语法4 | 青训营笔记

86 阅读1分钟

go中也有类似哈希表的数据结构,就是map,声明方式是var mymap map[key_type]value_type,即声明了一个key为key_type、value是value_type的map mymap。 但是这样声明后无法使用,还要再调用make方法初始化之后才能使用。 和c++语言类似,mymap[key]既可以赋值也可以读取数据。

但是这里的map是无序的,无法通过下标获取值。且map的容量没有限制,类似一个引用类型。map同样也有len函数,返回map内的key总数。但要注意,map不是线程安全的,多线程或者go中多协程时需要加锁。在判断map中是否存在key的方式为,对mymap[key]取其两个返回值时,第二个为ok,当ok为false时表示此key不存在。

可以有两个map指向同一块内存空间,但是当一个改变时另一个也会改变。

go的if语句不需要使用小括号围起来,但后面的执行语句需要用大括号围起来,就算只有一句也需要。for循环也不需要小括号,当使用类似c++中的for(int i=0;i<n;i++)时,只要去掉小括号就可以使用类似语法定义i和循环次数了。