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

And*_*eKR 4 go

Effective Go推荐的Interface checks部分

var _ json.Marshaler = (*RawMessage)(nil)
Run Code Online (Sandbox Code Playgroud)

作为RawMessage实现Marshaler.

我知道分配如何进行类型检查,但右侧实际上是什么意思?

And*_*eKR 6

好的,我想通了。它通过强制转换来创建一个新的*RawMessage(指向 的指针RawMessage)。我会期待nilnil*RawMessage

*RawMessage(nil)
Run Code Online (Sandbox Code Playgroud)

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