将结构体指针转换为接口{}
给定如下所示的不可变类型声明:
type foo struct {} func bar(baz interface{}) {}
Where baz需要转换回 bar 内的 *foo 指针,本文探讨如何转换&foo{} 转换为 interface{},用作 bar 中的参数。
将 &foo 转换为 interface{}**
转换指向接口{}的 *foo 指针是简单明了:
f := &foo{} bar(f) // Every type implements interface{}.
转换接口{}返回foo*
从中检索*foo值接口{},有两种方法可用:
类型断言:
func bar(baz interface{}) { f, ok := baz.(*foo) if !ok { // baz is not a *foo } // f is a *foo }
类型切换:
func bar(baz interface{}) { switch f := baz.(type) { case *foo: // f is a *foo default: // f is some other type } }
以上是如何将 *foo 指针转换为 interface{} 并返回 Go?的详细内容。更多信息请关注PHP中文网其他相关文章!