我正在尝试在 golang 中使用类型断言。直接断言没有问题。
a, ok := i.(MyStruct)
但是当我使用反射时
b, ok := i.(reflect.TypeOf(i))
我有一个错误。那有什么问题?以及如何处理?
完整代码:
package main
import (
"fmt"
"reflect"
)
type MyStruct struct {
field string
}
func main() {
var i interface{} = MyStruct{field:"Thanks"}
a, ok := i.(MyStruct)
fmt.Println(a, ok)
t := reflect.TypeOf(i)
fmt.Println(t)
b, ok := i.(t)
fmt.Println(b, ok)
}
感谢您的回答。