仍然是 Go 的新手。我正在尝试按照我上一个问题的建议实施答案。在这种情况下,我有一个动物界面和一堆动物结构。我希望能够遍历每个动物并获得它的语言。我已经尝试了一个指针列表,但我不断收到错误“y.language undefined(动物类型没有字段或方法语言)”:
package main
import "fmt"
type animal interface {
speak()
}
type dog struct{
language string
}
func (d *dog) speak() {
d.language = "woof"
}
var n = []animal{
&dog{},
}
func main() {
for _, w := range n{
x := &dog{}
fmt.Println(x)
x.speak()
fmt.Println(x.language) // this works
fmt.Println(w)
y := w
y.speak()
fmt.Println(y.language) // but this doesn't...why??
}
}
编辑#1:为了让我的问题更清楚:为什么 x := &dog{} 有效但 y := w 无效?编辑 #2:不喜欢新手;(
喵喵时光机
相关分类