用于结构指针的切片文字的golang快捷语法

时间:2018-02-13 13:14:59

标签: go

鉴于

type foo struct {
    id int
}

两者相当于

var foos = []*foo{
    {1},
    {2},
    {3}}

var foos = []*foo{
    &foo{1},
    &foo{2},
    &foo{3}}

为什么?但是不能在TGPL中找到它。

https://play.golang.org/p/JXxZaybbWnV

1 个答案:

答案 0 :(得分:2)

您可以跳过composite literals中的类型。

  

在数组,切片或地图类型T的复合文字中,如果它们与T的元素或键类型相同,那么它们本身是复合文字的元素或映射键可能会忽略相应的文字类型。类似地,元素或键当元素或键类型为* T时,复合文字的地址可能会忽略& T.