Golang反射原理

时间:2024-10-31 19:15:52
package main import ( "fmt" "reflect" ) func main() { // 示例变量 var x float64 = 3.4 // 获取类型和种类 t := reflect.TypeOf(x) fmt.Println("type:", t) // 获取值 v := reflect.ValueOf(x) fmt.Println("value:", v) // 获取种类 fmt.Println("kind is float64:", v.Kind() == reflect.Float64) // 修改值 p := reflect.ValueOf(&x) vp := p.Elem() if vp.CanSet() { vp.SetFloat(7.1) } fmt.Println("new value:", x) }