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 ¶
GetUnexportedFieldAddr 获取未导出字段的地址.
参考: gorm.io/gorm v1.25.7 中的 DB.DB()
func GetUnexportedFieldAddrOfBasicType ¶
GetUnexportedFieldAddrOfBasicType 获取未导出字段(基本类型)的地址.
基本类型: bool、int...
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.