我有这个例子
// embed project main.go
package main
import (
"fmt"
)
type A struct {
A1 int
A2 int
}
func (a A) Incr() int {
a.A1++
return a.A1
}
type B struct {
A
D int
}
type C interface {
Incr() int
}
func Add(c C) {
d := c.Incr()
fmt.Println(d)
}
func main() {
var s B
s.Incr() //B has Incr
Add(s)
}
使用这个例子,我想检查 B 是否实现了接口 C。在本例中,添加 accept s(类型 B)作为输入。B 实施 C .
但是当我将 Incr() 方法从原始更改为
func (a *A) Incr() int {
a.A1++
return a.A1
}
它编译器给出了错误
./main.go:35:不能在 AddContent 的参数中使用 s(类型 B)作为类型 C:B 没有实现 C(Incr 方法有指针接收器)
所以我仍然很困惑一个结构是否实现了它们的一个嵌入类型实现的所有接口。
守着星空守着你
慕村9548890
相关分类