Golang - 0不是null

时间:2015-05-21 15:18:16

标签: struct go

我将值传递给值为omitempty

的结构

Offset uint64 'json:"offset,omitempty"'

然而,当我将0作为offset的值传递时,它也被省略。

我可以以某种方式将0声明为未定义为null的值吗?

1 个答案:

答案 0 :(得分:5)

序列化的结构通常使用指针来指示可为空的字段。它可以使使用该结构更加繁琐,但具有识别nil0之间的优势

type T struct {
    Offset *uint64 `json:"offset,omitempty"`
}

使用nil指针

t := T{}
// marshals to "{}"

分配零值后

t.Offset = new(uint64)
// marshals to `{"offset":0}`