如果我有:
type foo struct{
}
func bar(baz interface{}) {
}
以上是一成不变的——我不能改变 foo 或 bar。此外,baz 必须转换回 bar 内的 foo 结构指针。如何将 &foo{} 转换为 interface{} 以便在调用 bar 时可以将其用作参数?
原文由 lf215 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.3k 阅读
6 回答6.8k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.3k 阅读
2 回答2.2k 阅读
1 回答2.1k 阅读
1 回答1.5k 阅读
将
*foo
变成interface{}
是微不足道的:为了回到
*foo
,你可以做一个 类型断言:或 类型开关(类似,但如果
baz
可以是多种类型则很有用):