map初始化
一、初始化
对于空map请使用make(..)初始化,这样使得map的初始化和声明有较大不同,例如:
//bad usage
var (
// m1 读写安全;
// m2 在写入时会 panic
m1 = map[T1]T2{}
m2 map[T1]T2
)
//good usage
var (
// m1 读写安全;
// m2 在写入时会 panic
m1 = make(map[T1]T2)
m2 map[T1]T2
)另外,如果map包含固定的元素列表,则使用map literals初始化映射。
//bad usage
m := make(map[T1]T2, 3)
m[k1] = v1
m[k2] = v2
m[k3] = v3
//good usage
m := map[T1]T2{
k1: v1,
k2: v2,
k3: v3,
}二、性能提升
在map初始化时提供大致的容量大小信息。
为make()提供容量信息尝试在初始化时调整map大小,这减少了在将元素添加到map时增长和分配的开销。**注意,map不能保证分配hint个容量。因此,即使提供了容量,添加元素仍然可以进行分配。
Last updated
Was this helpful?