Documentation ¶
Overview ¶
Package reflector provides utilities for reflection
Index ¶
- Variables
- func CallFunc(object interface{}, args ...interface{}) (interface{}, error)
- func CallMethodByName(object interface{}, name string, args ...interface{}) (interface{}, error)
- func DeepFields(reflectType reflect.Type) []reflect.StructField
- func FindEmbeddedFieldTag(object interface{}, name string) (t string, ok bool)
- func GetEmbeddedField(object interface{}, dataTypes ...reflect.Kind) (field reflect.StructField)
- func GetEmbeddedFieldByType(typ reflect.Type, kind ...reflect.Kind) (field reflect.StructField)
- func GetFieldValue(f interface{}, name string) reflect.Value
- func GetFullName(object interface{}) (name string)
- func GetFuncOutType(object interface{}) (typ reflect.Type, ok bool)
- func GetKind(kind reflect.Kind) reflect.Kind
- func GetKindByType(typ reflect.Type) reflect.Kind
- func GetKindByValue(val reflect.Value) reflect.Kind
- func GetLowerCamelFullName(object interface{}) (name string)
- func GetLowerCamelFullNameByType(objType reflect.Type) (name string)
- func GetLowerCamelName(object interface{}) (string, error)
- func GetName(data interface{}) (name string, err error)
- func GetPkgAndName(object interface{}) (pkgName, name string)
- func GetPkgPath(object interface{}) string
- func GetType(data interface{}) (typ reflect.Type, err error)
- func HasEmbeddedField(object interface{}, name string) bool
- func HasField(object interface{}, name string) bool
- func Indirect(reflectValue reflect.Value) reflect.Value
- func IndirectType(reflectType reflect.Type) reflect.Type
- func NewReflectType(st interface{}) interface{}
- func ParseObjectName(obj interface{}, eliminator string) string
- func ParseObjectPkgName(obj interface{}) string
- func SetFieldValue(object interface{}, name string, value interface{}) error
- func Validate(toValue interface{}) (*reflect.Value, error)
- func ValidateReflectType(obj interface{}, ...) error
Constants ¶
This section is empty.
Variables ¶
var ( // ErrInvalidInput means that the input is invalid ErrInvalidInput = errors.New("input is invalid") // ErrInvalidMethod means that the method is invalid ErrInvalidMethod = errors.New("method is invalid") // ErrInvalidFunc means that the func is invalid ErrInvalidFunc = errors.New("func is invalid") // ErrFieldCanNotBeSet means that the field can not be set ErrFieldCanNotBeSet = errors.New("field can not be set") )
Functions ¶
func CallFunc ¶ added in v0.4.0
func CallFunc(object interface{}, args ...interface{}) (interface{}, error)
CallFunc call function
func CallMethodByName ¶
CallMethodByName call method
func DeepFields ¶
func DeepFields(reflectType reflect.Type) []reflect.StructField
DeepFields iterate struct field
func FindEmbeddedFieldTag ¶ added in v0.8.0
FindEmbeddedFieldTag find embedded field tag
func GetEmbeddedField ¶ added in v0.9.3
func GetEmbeddedField(object interface{}, dataTypes ...reflect.Kind) (field reflect.StructField)
GetEmbeddedInterfaceField get embedded interface field
func GetEmbeddedFieldByType ¶ added in v0.9.3
GetEmbeddedInterfaceFieldByType get embedded interface field by type
func GetFieldValue ¶
GetFieldValue get field value
func GetFullName ¶ added in v0.9.0
func GetFullName(object interface{}) (name string)
GetFullName get the object name with package name, e.g. pkg.Object
func GetFuncOutType ¶ added in v0.9.0
GetFuncOutType get the function output data type
func GetKindByType ¶ added in v0.5.0
GetKindByType get kind by type
func GetKindByValue ¶ added in v0.5.0
GetKindByValue get kind by value
func GetLowerCamelFullName ¶ added in v0.9.3
func GetLowerCamelFullName(object interface{}) (name string)
GetLowerCamelFullName get the object name with package name, e.g. pkg.objectName
func GetLowerCamelFullNameByType ¶ added in v0.9.3
GetFullNameByType get the object name with package name by type, e.g. pkg.Object
func GetLowerCamelName ¶ added in v0.9.3
GetLowerCaseObjectName get lower case object name
func GetPkgAndName ¶ added in v0.9.0
func GetPkgAndName(object interface{}) (pkgName, name string)
GetPkgAndName get the package name and the object name with, e.g. pkg, Object
func GetPkgPath ¶ added in v0.3.0
func GetPkgPath(object interface{}) string
GetPkgPath get the package patch
func HasEmbeddedField ¶
HasEmbeddedField check if has embedded fieled
func IndirectType ¶
IndirectType get indirect type
func NewReflectType ¶
func NewReflectType(st interface{}) interface{}
NewReflectType create instance by tyep
func ParseObjectName ¶ added in v0.3.0
ParseObjectName e.g. ExampleObject => example
func ParseObjectPkgName ¶ added in v0.4.0
func ParseObjectPkgName(obj interface{}) string
ParseObjectName e.g. ExampleObject => example
func SetFieldValue ¶
SetFieldValue set field value
Types ¶
This section is empty.