初始化 Maps
发布者:admin 发表于:446天前 阅读数:641 评论:0

对于空 map 请使用 make(..) 初始化, 并且 map 是通过编程方式填充的。

这使得 map 初始化在表现上不同于声明,并且它还可以方便地在 make 后添加大小提示。

Bad Good

var ( // m1 读写安全; // m2 在写入时会 panic m1 = map[T1]T2{} m2 map[T1]T2 ) |

var ( // m1 读写安全; // m2 在写入时会 panic m1 = make(map[T1]T2) m2 map[T1]T2 )

声明和初始化看起来非常相似的。 |

声明和初始化看起来差别非常大。 |

在尽可能的情况下,请在初始化时提供 map 容量大小,详细请看 指定Map容量提示

另外,如果 map 包含固定的元素列表,则使用 map literals(map 初始化列表) 初始化映射。

Bad Good

m := make(map[T1]T2, 3) m[k1] = v1 m[k2] = v2 m[k3] = v3 |

m := map[T1]T2{ k1: v1, k2: v2, k3: v3, } |

基本准则是:在初始化时使用 map 初始化列表 来添加一组固定的元素。否则使用 make (如果可以,请尽量指定 map 容量)。