17 lines
287 B
Go
17 lines
287 B
Go
package util
|
|
|
|
import "reflect"
|
|
|
|
func IsInterfaceNil(i interface{}) bool {
|
|
iv := reflect.ValueOf(i)
|
|
if !iv.IsValid() {
|
|
return true
|
|
}
|
|
switch iv.Kind() {
|
|
case reflect.Ptr, reflect.Slice, reflect.Map, reflect.Func, reflect.Interface:
|
|
return iv.IsNil()
|
|
default:
|
|
return false
|
|
}
|
|
}
|