go变量初始化语法的简化[duplicate]

njthzxwz  于 2023-02-14  发布在  Go
关注(0)|答案(1)|浏览(117)

此问题在此处已有答案

golang shortcut syntax for slice literal of pointers to structs(1个答案)
GoLang Empty Struct Construction(1个答案)
How is it that I can initialize a slice of pointers like this?(1个答案)
Go: Confusion about initialization of struct array [duplicate](1个答案)
21小时前关门了。
在下面的代码中:

var v1 []string = []string{"1"}
var v2 map[string][]string = map[string][]string{"a": []string{"1"}}

第二个可以简化为:

var v2 map[string][]string = map[string][]string{"a": {"1"}}

而第一个不能写成:

var v1 []string = {"1"}

我不知道这个简化的语法是在Go语言的哪个版本中加入的,在哪里可以使用,为什么[]string这个不能简化呢?

kuhbmx9i

kuhbmx9i1#

https://go.dev/ref/spec#Composite_literals says:
在数组、切片或Map类型T的复合文字内,如果其与T的元素或键类型相同,则本身是复合文字的元素或Map键可以省略相应文字类型。
相关:Create array of array literal in Golang

相关问题