假设我声明了一个像下面这样的float类型的变量
var meters float64
然后通过波纹管代码接受用户输入并填充该变量
fmt.Scan(&meters)
使用reflect
可以使Scan
方法知道此指针指向的变量的类型(float64
)。但是,在读取用户输入后,它如何创建float64
的实例?
答案 0 :(得分:1)
它没有创建float64
的实例。指令var meters float64
正在创建变量,从而创建了占位符。我们传递变量的地址以从stdin输入中填充。
Scan确定Scan
变量的类型并转换输入。这是在文件https://www.youtube.com/watch?v=78_7lv8QQZM&feature=youtu.be中的功能scanOne
(第944行)中执行的。