反射三定律:
1.变量---->反射变量
2.变量---->反射变量---->接口
3.变量----->(通过取地址&)反射变量---->修改变量的值
反射的类型和种类:
切片、集合、结构体、指针、函数与反射......
总结:
内置包函数 reflect 的函数 reflect.TypeOf() 和 reflect.ValueOf() 能获取变量的数据类型和数值,并将变量转换为反射变量,它们对应的数据类型分别为 *reflect.rtype 和 reflect.Value;
反射的机制分为类型和种类两种,用的最多的是类型,种类则是类型的上一级别类别。
反射可以通过 reflect.TypeOf() 和 reflect.ValueOf() 对任意变量进行转换。基本类型(整型、浮点型、字符串或布尔型等),使用Elem() 和 SetInt()等可以实现数据修改;如果变量是切片、集合、结构体、指针、函数等复杂一点数据类型,则需要特定方法实现数据读取和修改。