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

问题描述 投票:-6回答:1

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

var config *configuration

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

pointers go
1个回答
3
投票

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

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

json: Unmarshal(nil *main.configuration)

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

更换

var config *configuration

config := new(configuration)

要么

config := &configuration{}

它应该工作得很好。

© www.soinside.com 2019 - 2024. All rights reserved.