标签: generics reflection casting go
在go中,是否有可能以某种方式动态转换变量?
例如,如果简单的演员阵容是:
var intAge = interfaceAge.(int)
如果我不知道年龄是提前的int怎么办?一种简单的写作方式是
var x = getType() var someTypeAge = interfaceAge(.x)
有没有办法实现这样的目标?反射包提供了一些在运行时确定或转换类型的方法 - 但是我找不到像上面提到的那样(一种适用于所有类型的通用方案)。
答案 0 :(得分:7)
不,你不能。 Go是一种静态类型语言。变量的类型在编译时确定。
如果您想动态确定type的{{1}},可以使用type switching:
type
interface{}