man*_*p.s 8 reflection null interface go
我需要检查接口值是否为"nil".
但通过使用反射,它给了我一个错误:
反映:在struct Value上调用reflect.Value.Bool.
通过nil
它没有给人一种错误的nil
价值.
tha*_*hpk 12
接口是一对(type, value)
,当你将一个接口与nil进行比较时,你将这对(类型,值)与nil进行比较.要比较接口值,您必须将其转换为结构(通过类型断言)或使用反射.
当你知道接口的类型时,做一个类型断言
if i.(bool) == nil {
}
Run Code Online (Sandbox Code Playgroud)
否则,如果您不知道接口的基础类型,则可能必须使用反射
if reflect.ValueOf(i).IsNil() {
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8180 次 |
最近记录: |