我有这个函数接受一个接口{}
func MyFunk(itf interface{}) {
}
Run Code Online (Sandbox Code Playgroud)
我想知道itf传递的结构是否可能?我已经尝试了几种反射组合,我可以获得的关闭是ptr(指针).
使用以下命令检测参数是否为结构:
func MyFunk(itf interface{}) {
v := reflect.ValueOf(itf)
if v.Kind() == reflect.Struct {
// it's a struct
}
}
Run Code Online (Sandbox Code Playgroud)
如果您还想检查结构的指针,请使用以下代码:
func MyFunk(itf interface{}) {
v := reflect.Indirect(reflect.ValueOf(itf))
if v.Kind() == reflect.Struct {
// it's a struct
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |