我需要将结构分配给 interface{} (a) 然后再次断言它 (b) 就像在我的例子中一样。我需要 MyStruct 和 MyNestedStruct 才能转换。https://play.golang.org/p/LSae9dasJI我怎样才能做到这一点?
1 回答
慕哥9229398
TA贡献1877条经验 获得超6个赞
在调试你的代码时,我到达了这个(仍然是损坏的状态),它清楚地显示了你的实现有什么问题;https://play.golang.org/p/MnyDxKvJsK
第二个链接已解决问题。基本上,由于您的返回类型,您的类型实际上并没有实现接口。是的,返回类型实现了接口,但它不是接口的实例。仔细看下面的代码;
// your version *MyNestedStruct != MyNestedInterface
func (this *MyStruct) GetNested() *MyNestedStruct {
return this.nested
}
type MyInterface interface{
GetNested() MyNestedInterface
}
//my version
func (this *MyStruct) GetNested() MyNestedInterface {
return this.nested
}
https://play.golang.org/p/uf2FfvbATb
- 1 回答
- 0 关注
- 158 浏览
添加回答
举报
0/150
提交
取消