24 lines
433 B
Go
24 lines
433 B
Go
|
package reflect
|
||
|
|
||
|
import (
|
||
|
"reflect"
|
||
|
)
|
||
|
|
||
|
func IsTypeKind(t reflect.Type, kind reflect.Kind, removePtr bool) bool {
|
||
|
if reflect.Ptr == t.Kind() {
|
||
|
if removePtr {
|
||
|
return IsTypeKind(t.Elem(), kind, removePtr)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return kind == t.Kind()
|
||
|
}
|
||
|
|
||
|
func GetTypeInfo(t reflect.Type) (realType reflect.Type, pkgName string, name string) {
|
||
|
if reflect.Ptr == t.Kind() {
|
||
|
return GetTypeInfo(t.Elem())
|
||
|
}
|
||
|
|
||
|
return t, t.PkgPath(), t.Name()
|
||
|
}
|