为什么不能编组指针变量?

时间:2017-12-27 17:52:20

标签: pointers go

我在包级别使用指针变量:

var config *configuration

但尝试解组变量会导致此错误:json: Unmarshal(nil *main.configuration)。但是,解组指针变量的指针是成功的。这是什么原因?

1 个答案:

答案 0 :(得分:3)

  

为什么不能编组指针变量?

有可能。事实上,这是必需的。无法解组到非指针。

Name  x  y  |z (new col)
A     1  5  |1
B     2  6  |2
C     0  3  |3
D     0  0  |0

这个错误并不是说你不能解组指针,它说你不能解组为nil指针。指针必须指向有效(可能是零值)变量。

替换

json: Unmarshal(nil *main.configuration)

使用

var config *configuration

config := new(configuration)

它应该可以正常工作。