如何在Golang中使用另一个值的reflect.Type转换值类型 也许是这样的:
func Scan(value interface{}, b string) error {
converted := value.(reflect.TypeOf(b)) // do as "value.(string)"
return nil
}
如何在golang中正确地做到这一点?
答案 0 :(得分:3)
从接口中获取类型化值的唯一方法是使用类型断言,语法为value.(T)
,其中T是一个类型。这有一个很好的理由,因为它使类型断言表达式的类型可计算:value.(T)
具有类型T.相反,您允许value.(E)
其中E
是表达式评估为reflect.Type
(我认为这是你的问题的要点),然后编译器无法(通常)静态地确定value.(E)
的类型,因为它取决于结果任意计算。