Go:扩展未命名的类型,例如 []string

关于 Go 中的类型别名,我有点困惑。

据我所知,如果底层结构相同,未命名和命名变量可以相互分配。


我想弄清楚的是,我可以通过命名它们来扩展未命名的类型 - 像这样:


type Stack []string


func (s *Stack) Print() {

    for _, a := range s {

        fmt.Println(a)

    }

}

这给了我错误cannot range over s (type *Stack)

Tried cast to []string,不行。


我知道下面的代码有效 - 这是我应该做的方式吗?如果是这样,我很想知道为什么上述方法不起作用,以及诸如type Name []string.


type Stack struct {

    data []string

}


func (s *Stack) Print() {

    for _, a := range s.data {

        fmt.Println(a)

    }

}


杨__羊羊
浏览 207回答 1
1回答

慕勒3428872

您应该取消引用指针 stype Stack []stringfunc (s *Stack) Print() {    for _, a := range *s {        fmt.Println(a)    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go