为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
杨__羊羊 2021-08-23 16:07:01
关于 Go 中的类型别名,我有点困惑。据我所知,如果底层结构相同,未命名和命名变量可以相互分配。我想弄清楚的是,我可以通过命名它们来扩展未命名的类型 - 像这样:type Stack []stringfunc (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)    }}
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

您应该取消引用指针 s


type Stack []string


func (s *Stack) Print() {

    for _, a := range *s {

        fmt.Println(a)

    }

}


查看完整回答
反对 回复 2021-08-23
  • 1 回答
  • 0 关注
  • 206 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信