什么`(* RawMessage)(零)是什么意思?

时间:2016-03-27 07:47:45

标签: go

Interface checks from Effective Go部分建议

var _ json.Marshaler = (*RawMessage)(nil)

作为RawMessage实现Marshaler的编译时检查。

我得到了作业类型检查的方式,但右侧实际意味着什么?

1 个答案:

答案 0 :(得分:3)

好的,我明白了。它通过将*RawMessage投射到RawMessage来创建nil(指向nil*RawMessage的新指针。我原以为

*RawMessage(nil)

不起作用,因为 cast 转换似乎优先于指针运算符,因此它将成为取消引用。