英文:
Which is the nicer way to initialize a map?
问题
map
是引用类型。以下是 m := make(map[string]int32)
和 m := map[string]int32{}
之间的区别:
-
m := make(map[string]int32)
:这种方式使用了make
函数来创建一个空的map
,并分配了内存空间。这样做可以确保map
被正确初始化,并且可以立即开始使用。 -
m := map[string]int32{}
:这种方式使用了字面量语法来创建一个空的map
。在这种情况下,map
不需要使用make
函数进行显式的初始化,因为字面量语法已经为其提供了初始值。
总的来说,两种方式都可以创建一个空的 map
,但使用 make
函数可以提供更多的灵活性,例如可以指定初始容量或者预分配内存空间。而使用字面量语法则更加简洁。
英文:
As map
is a reference type. What is difference between:?
m := make(map[string]int32)
and
m := map[string]int32{}
答案1
得分: 269
一个允许你初始化容量,一个允许你初始化值:
// 在重新分配之前,初始化一个具有15个项目空间的映射
m := make(map[string]int32, 15)
与
// 初始化一个映射,将名称"bob"与数字5相关联
m := map[string]int{"bob": 5}
对于容量为0的空映射,它们是相同的,只是个人偏好。
英文:
One allows you to initialize capacity, one allows you to initialize values:
// Initializes a map with space for 15 items before reallocation
m := make(map[string]int32, 15)
vs
// Initializes a map with an entry relating the name "bob" to the number 5
m := map[string]int{"bob": 5}
For an empty map with capacity 0, they're the same and it's just preference.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论