下面的示例显示了当您反映设置为对象 (g) 和指向所述对象 (h) 的指针的接口 {} 时会发生什么。这是设计使然,当我将指针放入接口 {} 时,我是否应该期望我的数据类型丢失或者更确切地说,或者我无法取回数据类型的名称?
包主
导入“fmt”
导入“反射”
类型 Foo 结构 {
酒吧串
}
功能主(){
f := Foo{Bar: "FooBar"}
typeName :=reflect.TypeOf(f).Name()
fmt.Printf("typeName %v\n", typeName)
var g 接口{}
g = f
typeName = reflect.TypeOf(g).Name()
fmt.Printf("typeName %v\n", typeName)
var h 接口{}
h = &f
typeName = reflect.TypeOf(h).Name()
fmt.Printf("typeName %v\n", typeName)
}
输出:
类型名称 Foo
类型名称 Foo
类型名称
也在:
http://play.golang.org/p/2QuBoDxHfX
相关分类