我正在尝试在 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)

}

感谢您的回答。