在 Go 中检查 nil 和 nil 接口
发布于 2022-01-03 17:01:06
目前我正在使用这个辅助函数来检查 nil 和 nil 接口
func isNil(a interface{}) bool {
defer func() { recover() }()
return a == nil || reflect.ValueOf(a).IsNil()
}
由于reflect.ValueOf(a).IsNil()
如果值的 Kind 不是Chan
, Func
, Map
, Ptr
,Interface
或Slice
,则会引起恐慌,因此我将 deferred 放入recover()
以捕获它们。
有没有更好的方法来实现这个检查?它认为应该有一种更直接的方法来做到这一点。
关注者
0
被浏览
52