關(guān)于 Go 中的類型別名,我有點(diǎn)困惑。據(jù)我所知,如果底層結(jié)構(gòu)相同,未命名和命名變量可以相互分配。我想弄清楚的是,我可以通過命名它們來擴(kuò)展未命名的類型 - 像這樣:type Stack []stringfunc (s *Stack) Print() { for _, a := range s { fmt.Println(a) }}這給了我錯誤cannot range over s (type *Stack)Tried cast to []string,不行。我知道下面的代碼有效 - 這是我應(yīng)該做的方式嗎?如果是這樣,我很想知道為什么上述方法不起作用,以及諸如type Name []string.type Stack struct { data []string}func (s *Stack) Print() { for _, a := range s.data { fmt.Println(a) }}
1 回答

慕勒3428872
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個贊
您應(yīng)該取消引用指針 s
type Stack []string
func (s *Stack) Print() {
for _, a := range *s {
fmt.Println(a)
}
}
- 1 回答
- 0 關(guān)注
- 245 瀏覽
添加回答
舉報(bào)
0/150
提交
取消