package main
import "fmt"
type intr interface {
String() string
}
type bar struct{}
func (b *bar) String() string {
return "bar"
}
type foo struct {
bar *intr
}
func main() {
bar1 := bar{}
foo1 := foo{bar: &bar1}
fmt.Println(foo1)
}
我收到编译时错误:无法在字段值中使用&bar1(类型* bar)作为类型* intr:* intr是指向接口的指针,而不是接口 为什么会发生此错误? 如何设置foo.bar?
您正在将其分配给指向接口的指针。将字段类型更改为接口后,它将起作用:
很少需要指向接口的指针。