Interface checks from Effective Go部分建议
var _ json.Marshaler = (*RawMessage)(nil)
作为RawMessage
实现Marshaler
的编译时检查。
我得到了作业类型检查的方式,但右侧实际意味着什么?
答案 0 :(得分:3)
好的,我明白了。它通过将*RawMessage
投射到RawMessage
来创建nil
(指向nil
)*RawMessage
的新指针。我原以为
*RawMessage(nil)
但不起作用,因为 cast 转换似乎优先于指针运算符,因此它将成为取消引用。