为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在 Go 中的 interface{} 中放置一个指针会导致反射丢失类型的名称?

为什么在 Go 中的 interface{} 中放置一个指针会导致反射丢失类型的名称?

Go
缥缈止盈 2021-09-13 15:32:17
下面的示例显示了当您反映设置为对象 (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
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信