这不是在 Go 中使用接口的正确方法。这个问题的目的是让我了解 Go 中的空接口是如何工作的。
如果 Go 中的所有类型都实现interface{}(空接口),为什么我不能访问and结构name中的字段?如何通过函数 sayHi() 访问每个结构的名称字段?CatDog
package main
import (
"fmt"
)
func sayHi(i interface{}) {
fmt.Println(i, "says hello")
// Not understanding this error message
fmt.Println(i.name) // i.name undefined (type interface {} is interface with no methods)
}
type Dog struct{
name string
}
type Cat struct{
name string
}
func main() {
d := Dog{"Sparky"}
c := Cat{"Garfield"}
sayHi(d) // {Sparky} says hello
sayHi(c) // {Garfield} says hello
}
慕村225694
手掌心
catspeake
相关分类