Browse Source

Add IsTypedNil

pull/1780/head
Jae Kwon 7 years ago
parent
commit
382e99d06e
1 changed files with 18 additions and 0 deletions
  1. +18
    -0
      common/nil.go

+ 18
- 0
common/nil.go View File

@ -0,0 +1,18 @@
package common
import "reflect"
// Go lacks a simple and safe way to see if something is a typed nil.
// See:
// - https://dave.cheney.net/2017/08/09/typed-nils-in-go-2
// - https://groups.google.com/forum/#!topic/golang-nuts/wnH302gBa4I/discussion
// - https://github.com/golang/go/issues/21538
func IsTypedNil(o interface{}) bool {
rv := reflect.ValueOf(o)
switch rv.Kind() {
case reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.Slice:
return rv.IsNil()
default:
return false
}
}

Loading…
Cancel
Save