对于空的 maps,请使用make(..)初始化,并且以编程的方式填充的。这使得map的初始化在表现上不同于声明,并且可以方便地在以后添加容量大小提示(如果有的话)。
Bad
var (
// m1 可以安全的读写
// m2 在写时会panic
m1 = map[T1]T2{}
m2 map[T1]T2
)
//声明和初始化看起来非常相似
Good
var (
// m1 可以安全的读写
// m2 写时会panic
m1 = make(map[T1]T2)
m2 map[T1]T2
)
// 声明和初始化看起来是不同的
在尽可能的情况下,在使用make()初始化 map时,提供容量提示。请查阅Specifying Map Capacity Hints 获取更多信息。
另一方面,如果map包含一个固定的元素列表,则使用map字面量初始化该map。
Bad
m := make(map[T1]T2, 3)
m[k1] = v1
m[k2] = v2
m[k3] = v3
Good
m := map[T1]T2{
k1: v1,
k2: v2,
k3: v3,
}
基本的经验法则是:在初始化时,添加一组固定的元素时,请使用map字面量,否则使用make(并尽可能指定容量)。
本文探讨了在Go语言中如何正确初始化Map。通过对比不同的初始化方式,文章强调了使用make函数初始化Map的重要性,尤其是在提供容量提示方面。此外,还介绍了在已知固定元素的情况下直接使用字面量进行初始化的方法。
1万+

被折叠的 条评论
为什么被折叠?



