Golang中如何通过另一个值的reflect.Type来转换值类型可能是这样的:
func Scan(value interface{}, b string) error {
converted := value.(reflect.TypeOf(b)) // do as "value.(string)"
return nil
}
Run Code Online (Sandbox Code Playgroud)
如何在 golang 中正确地做到这一点?
从接口中获取类型化值的唯一方法是使用类型断言,语法是value.(T)
其中 T 是类型。有一个很好的理由,因为它使类型断言表达式可计算类型:value.(T)
有型T.相反,如果你允许value.(E)
其中E
一些表达式计算结果为reflect.Type
(我认为这是你的问题的要点),那么编译器无法(通常)静态确定类型,value.(E)
因为它取决于任意计算的结果。
归档时间: |
|
查看次数: |
3732 次 |
最近记录: |