reflect.Valueで変数の値を変更します

package main

import (
	"fmt"
	"reflect"
)

func main() {

	n := 1.2345
	fmt.Println("old value :", n)

	//通过reflect.ValueOf获取n中的reflect.Value,注意:参数必须是指针才能修改其值
	v := reflect.ValueOf(&n)
	e := v.Elem()

	fmt.Println("type :", e.Type())
	fmt.Println("can set :", e.CanSet())

	//重新赋值
	e.SetFloat(2.123)
	fmt.Println("new value :", n)

	//nv := reflect.ValueOf(n)
	// 如果非指针,这里直接panic
	//nv.Elem()
}

業績:
古い値:1.2345
タイプの:のfloat64
CAN SET:trueに
2.123:新しい新しい値

公開された35元の記事 ウォンの賞賛3 ビュー10000 +

おすすめ

転載: blog.csdn.net/takujo/article/details/102526116