如何通过从指针读取类型来创建实例

时间:2019-11-28 07:28:34

标签: go

假设我声明了一个像下面这样的float类型的变量

var meters float64

然后通过波纹管代码接受用户输入并填充该变量

fmt.Scan(&meters)

使用reflect可以使Scan方法知道此指针指向的变量的类型(float64)。但是,在读取用户输入后,它如何创建float64的实例?

1 个答案:

答案 0 :(得分:1)

它没有创建float64实例。指令var meters float64正在创建变量,从而创建了占位符。我们传递变量的地址以从stdin输入中填充。

Scan确定Scan变量的类型并转换输入。这是在文件https://www.youtube.com/watch?v=78_7lv8QQZM&feature=youtu.be中的功能scanOne(第944行)中执行的。