3 回答
TA贡献1775条经验 获得超8个赞
它将是指向 的指针book,与 相同&book{1, "Yellow moon"},但规范允许省略类型和&运算符,因为从类型中很明显。
var books = []*book {
{1, "Yellow moon"}, // This is the same as &book{1, "Yellow moon"}
}
规范:复合文字:
在数组、切片或映射类型的复合文字中T,本身是复合文字的元素或映射键可以省略相应的文字类型,如果它与 的元素或键类型相同T。&T类似地,当元素或键类型为 时,作为复合文字地址的元素或键可以省略*T。
[][]Point{{{0, 1}, {1, 2}}} // same as [][]Point{[]Point{Point{0, 1}, Point{1, 2}}}
[2]*Point{{1.5, -3.5}, {}} // same as [2]*Point{&Point{1.5, -3.5}, &Point{}}
TA贡献1794条经验 获得超8个赞
Does go auto convert composite literals inside a slice to pointers if I declare the slice as a pointer to a struct?
这是指向结构的指针的默认行为
当我们拥有结构指针 p 时,要访问结构的字段 X,我们可以编写 (*p).X。然而,这种表示法很麻烦,因此该语言允许我们只写 pX,而无需显式取消引用。
https://tour.golang.org/moretypes/4
- 3 回答
- 0 关注
- 129 浏览
添加回答
举报