Documentation ¶
Index ¶
- Variables
- func GetField(ptr interface{}, fieldName string) reflect.Value
- func GetNestedField(ptr interface{}, fieldNames ...string) (reflect.Value, error)
- func GetUnexportedFieldAddr(ptr any, fieldName string) unsafe.Pointer
- func GetUnexportedFieldAddrOfBasicType(ptr any, fieldName string) unsafe.Pointer
- func KindOf(i any) reflect.Kind
- func SetField(ptr interface{}, fieldName string, newFieldValue interface{}) error
Constants ¶
This section is empty.
Variables ¶
ValueOf
@param i 可以为nil
e.g.
v := reflectKit.ValueOf(111) fmt.Println(v.Kind() == reflect.Int) // true
e.g.1
{ var obj interface{} = nil v := reflectKit.ValueOf(obj) k := v.Kind() fmt.Println(k) // invalid fmt.Println(k == reflect.Invalid) // true } { type bean struct { } var obj *bean = nil v := reflectKit.ValueOf(obj) k := v.Kind() fmt.Println(k) // ptr fmt.Println(k == reflect.Invalid) // false }
Functions ¶
func GetField ¶
GetField
PS: 这样获取到的值是不可以修改的,如果要修改name字段,需要用到reflect.NewAt函数,这个函数通过一个类型值的底层地址(指针 p)和类型, 返回指向该值的一个指针,这个返回值是可寻址的,即可通过它直接访问该值。具体的修改是使用reflect.Value.Set函数。
@param fieldName 字段名(属性名),private 或 public的都可以
func GetNestedField ¶
GetNestedField 获取(层层嵌套的)字段
func GetUnexportedFieldAddr ¶ added in v3.0.28
GetUnexportedFieldAddr 获取未导出字段的地址.
参考: gorm.io/gorm v1.25.7 中的 DB.DB()
func GetUnexportedFieldAddrOfBasicType ¶ added in v3.0.28
GetUnexportedFieldAddrOfBasicType 获取未导出字段(基本类型)的地址.
基本类型: bool、int...
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.