JSON编码为零值的嵌入式json.Marshaler恐慌,您会认为这是一个错误吗?

  json.NewEncoder(os.Stdout).Encode(struct {
M json.Marshaler
} {})
</ code> </ pre>

panics:</ p>

  panic:接口转换:接口为nil,而不是json。Marshaler

</ code> </ pre>

https://play.golang。 org / p / Vur0JJq6SF </ p>

我想为我的接口明确声明它应该编组自身:</ p>

  键入事物接口{
json.Marshaler
Type()字符串
....
}
</ code> </ pre>

您会认为这是一个错误吗? 如果没有,为什么不呢?</ p>
</ div>

展开原文

原文

json.NewEncoder(os.Stdout).Encode(struct {
    M json.Marshaler
}{})

panics:

panic: interface conversion: interface is nil, not json.Marshaler 

https://play.golang.org/p/Vur0JJq6SF

I'd like to explicitly state for my interface that it should marshal itself:

type thing interface {
    json.Marshaler
    Type() string
    ....
}

would you consider this a bug? If no, why not?

dongping6974
dongping6974 有趣的问题,我认为论点的两面都有好处。
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐