我有这个接受接口(interface)的函数{}
func MyFunk(itf interface{}) {
}
而且我想知道传递的 itf 是否是一个结构体,这可能吗?我尝试了几种反射组合,我能得到的关闭是 ptr
(指针)。
最佳答案
使用以下代码检测参数是否为结构:
func MyFunk(itf interface{}) {
v := reflect.ValueOf(itf)
if v.Kind() == reflect.Struct {
// it's a struct
}
}
如果您还想检查指向结构的指针,请使用此代码:
func MyFunk(itf interface{}) {
v := reflect.Indirect(reflect.ValueOf(itf))
if v.Kind() == reflect.Struct {
// it's a struct
}
}
关于go - 我如何知 Prop 有类型接口(interface)的参数实际上是否是结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53903739/