util-go/reflect/indirect.go
Park Byung Jun 86193d253b Revert "removed corpix/reflect, use github.com/corpix/reflect"
This reverts commit c06889aa8cdca4800ead3d5459b145cf4da56d7e
2019-01-07 14:28:24 +00:00

32 lines
542 B
Go

package reflect
import (
"reflect"
)
func Indirect(v interface{}) interface{} {
if v == nil {
return nil
}
return IndirectValue(reflect.ValueOf(v)).Interface()
}
func IndirectValue(reflectValue reflect.Value) reflect.Value {
if reflectValue.Kind() == reflect.Ptr {
return reflectValue.Elem()
}
return reflectValue
}
func IndirectType(reflectType reflect.Type) reflect.Type {
if reflectType == TypeInvalid {
return TypeInvalid
}
if reflectType.Kind() == reflect.Ptr {
return reflectType.Elem()
}
return reflectType
}