反射法则摘录:(为什么不是 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 关注
- 313 浏览
添加回答
举报
0/150
提交
取消