【发布时间】:2021-08-17 15:33:34
【问题描述】:
我有一个嵌入类型 B 的类型 T,而 *B 实现了 I。*T 可以分配给类型 I 的变量,但在 T 的情况下不能,这是否意味着 (*T) 的方法集包含B的值和指针接收器?
package main
import (
"fmt"
)
type I interface {
Foo()
}
type B struct {}
type T struct {
B
}
func (a *B) Foo() {
fmt.Println("Bar")
}
func main() {
t := T{B{}}
// var i I = t -> error
var i I = &t
i.Foo()
}
【问题讨论】:
标签: go methods struct embedding