【发布时间】:2017-12-27 17:52:19
【问题描述】:
我在包级别使用指针变量:
var config *configuration
但尝试解组到变量中会导致此错误:json: Unmarshal(nil *main.configuration)。然而,解组为指向指针变量的指针是成功的。这是什么原因?
【问题讨论】:
-
因为它未初始化,因此
nil,这是文档中指定的 Unmarshal 的无效参数。但是指向 nil 指针的指针本身并不是 nil,这就是它起作用的原因。 -
.. 说明:play.golang.org/p/y3h_dD9bePU。第一段here 声明如果 v 为 nil 则返回错误。