反射法則摘錄:(為什么不是 fmt.Println(v)?因為 v 是一個 reflect.Value;我們想要它所持有的具體值。)這讓我感到困惑,因為以下代碼:var x float64 = 3.4var v = reflect.ValueOf(x)fmt.Println("value of x is:", v)y := v.Interface().(float64) // y will have type float64.fmt.Println("interface of value of x is:", y)打印相同的輸出:x 的值為:3.4x值的接口是:3.4是因為fmt在內部找到反映的具體價值嗎v?
1 回答

皈依舞
TA貢獻1851條經驗 獲得超3個贊
這是一個特例,記錄在String()
的方法上reflect.Value
。它指出
fmt 包特別對待值。它不會隱式調用它們的 String 方法,而是打印它們持有的具體值。
- 1 回答
- 0 關注
- 347 瀏覽
添加回答
舉報
0/150
提交
取消