为什么 *S Slice 可以用文字 S 开头?

我在 go 编程语言的 page187 中看到了这种语法。


var tracks = []*Track{

    {"Go", "Delilah", "From the Roots Up", 2012, length("3m38s")},

    {"Go", "Moby", "Moby", 1992, length("3m37s")},

    {"Go Ahead", "Alicia Keys", "As I Am", 2007, length("4m36s")},

    {"Ready 2 Go", "Martin Solveig", "Smash", 2011, length("4m24s")},

}

它只是一个语法糖吗


var tracks = []*Track{

    &Track{"Go", "Delilah", "From the Roots Up", 2012, length("3m38s")},

    &Track{"Go", "Moby", "Moby", 1992, length("3m37s")},

    &Track{"Go Ahead", "Alicia Keys", "As I Am", 2007, length("4m36s")},

    &Track{"Ready 2 Go", "Martin Solveig", "Smash", 2011, length("4m24s")},

}

我没有用谷歌搜索它的规格,如果有,请给我链接。


波斯汪
浏览 156回答 1
1回答

呼唤远方

从参考规范在数组、切片或映射类型 T 的复合字面量中,本身是复合字面量的元素或映射键如果与 T 的元素或键类型相同,则可以省略相应的字面量类型。类似地,作为地址的元素或键当元素或键类型为 *T 时,复合字面量可以省略 &T。[...]*Point{{1.5, -3.5}, {0, 0}}    // same as [...]*Point{&Point{1.5, -3.5}, &Point{0, 0}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python