gpt4 book ai didi

go - 有没有办法使用 Go 反射通过全名获取类型?

转载 作者:IT王子 更新时间:2023-10-29 01:33:36 26 4
gpt4 key购买 nike

在 Java 中,可以通过返回类类型的 Class.forName("com.my_pkg_name.MyClass") 来完成。

Go 反射似乎只能通过值找到类型,但不允许名称为类型。在实现与 Go 代码互操作的脚本语言解释器时,此功能非常有用。

最佳答案

除非您显式注册类型,例如 gob,否则不会。包确实如此。有点像

// NOTE Should be protected by a mutex.
var types map[string]reflect.Type

func Register(value interface{}) {
t := reflect.TypeOf(value)
name := t.PkgPath() + "." + t.Name()
types[name] = t
}

func TypeByName(name string) reflect.Type {
return types[name]
}

关于go - 有没有办法使用 Go 反射通过全名获取类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29533602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com