go - 我如何知 Prop 有类型接口(interface)的参数实际上是否是结构?

标签 go struct

我有这个接受接口(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/

相关文章:

go - 如何在 Golang 中为 cmd 工具编写基准测试?

go - 如何根据日期过滤集合并将其分配给 map

mysql - Go MySql 驱动程序没有正确设置时间

go - Rails RSpec 就像在 Google Go 中测试一样

html - golang 中是否有 boilerpipe?

c - 无法在结构中分配字符串

c - 如何为 10 名学生的结构生成随机 ID 和测试分数

c - 显示来自正在传递的 Struct 的数据

c - 为什么结构体中的变量没有被分配任何值?

c - C 中的简单链表函数