gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:58:58 28 4
gpt4 key购买 nike

本节Interface checks from Effective Go推荐

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

作为编译时检查 RawMessage 是否实现了 Marshaler

我知道赋值是如何进行类型检查的,但右侧到底是什么意思?

最佳答案

好的,我想通了。它通过将 nil 转换为 * 创建一个新的 *RawMessage(指向 RawMessage 的指针),它是 nil原始消息。我早该想到

*RawMessage(nil)

但是那行不通,因为 cast 转换似乎优先于指针运算符,所以它会成为取消引用。

关于go - `(*RawMessage)(nil)` 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36245061/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com