【问题标题】:golang nil pointer assignment with ignored output - (*)(nil) [duplicate]带有忽略输出的golang nil指针分配 - (*)(nil) [重复]
【发布时间】:2018-05-23 13:05:44
【问题描述】:

在阅读 this 使用 go 编写 FUSE 文件系统的教程时,我遇到了这个神秘的任务:

var _ fs.Node = (*Dir)(nil)

有人能解释一下这个语法的机制吗?它是如何适应声明它的上下文的?据我了解,赋值的结果实际上被忽略了(右手表达式甚至会导致什么结果?一个 nil Dir 指针?)

【问题讨论】:

    标签: pointers go


    【解决方案1】:

    这使编译器检查类型*Dir 是否满足fs.Node 接口。

    获取nil 指针,使其成为*Dir 指针并将其分配给接口类型fs.Node 的未命名变量。由于我们从不使用此变量,因此我们必须将其设为未命名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 2017-07-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多