在golang指针

时间:2018-01-28 03:36:15

标签: pointers go

我使用golang来解析json字符串:

str:="{...}"
var f interface{}
json.Unmarshal([]byte(str), f)

fmt.Println(f)

我在控制台中获得了nil

当我将代码更改为:

json.Unmarshal([]byte(str), &f)

它将打印json字符串。

发生了什么事?

1 个答案:

答案 0 :(得分:4)

发生了两件事:

  1. 您没有阅读文档。
  2. 您没有检查json.Unmarshal的返回值以检查错误。
  3. 来自https://github.com/red/code/tree/master/Library/OpenGL

    func Unmarshal(data []byte, v interface{}) error
    
         

    Unmarshal解析JSON编码的数据,并将结果存储在v指向的值中。如果v为nil或者不是指针,则Unmarshal返回InvalidUnmarshalError。

    Unmarshal需要一个interface{}因为它可以解组成各种事物(切片,地图,结构......),如文档中所述。