接口有两个方法,只实现其中一个不算实现接口吧

Imstrong · · 1568 次点击
方法集的问题,类型有自己的方法集(也就是这个类型实现了那些方法),方法集会影响到接口实现规则 ,也就是说一个类型是否实现了某个接口,是根据这个类型的方法集来判断的。具体规则如下: 1. 类型 T 方法集包含全部 receiver T 方法; 2. 类型 *T 方法集包含全部 receiver T + *T 方法; 3. 如类型 S 包含匿名字段 T,则 S 方法集包含 T 方法; 4. 如类型 S 包含匿名字段 *T,则 S 方法集包含 S + T + *T 方法; 5. 不管嵌入 T 或者 *T,*S 的方法集总是包含 S + *S + T + *T 方法; 你这个例子里面 base.NoOperandsInstruction 作为 NOP 的匿名字段,从最后一张图上可以看到 nop 为指针类型,所以参考上面的第5条规则即可明白。
#7
更多评论
`base.NoOperandsInstruction` 这个结构体应该实现了`FetchOperands`这个方法
#1
没有啊,第二张截图就是它的方法了,只有Execute方法,没有FetchOperands
#2