这篇博客的目标是介绍如何用反射对象批改工夫变量的值。要达到上述目标,最根本的操作如下:
package mainimport ( "fmt" "reflect")func main() { var num float64 = 3.14 fmt.Println("num is : ", num) //上面操作指针获取num地址,记得加上&取地址 pointer := reflect.ValueOf(&num) newValue := pointer.Elem() fmt.Println("type: ", newValue.Type()) fmt.Println("can set or not:", newValue.CanSet()) //从新赋值 newValue.SetFloat(6.28) fmt.Println(num)}
运行后果如下:
num is : 3.14type: float64can set or not: true6.28