Pointers 忽略输出的golang nil指针赋值-(*)(nil)

Pointers 忽略输出的golang nil指针赋值-(*)(nil),pointers,go,Pointers,Go,在阅读关于在go中编写FUSE文件系统的教程时,我遇到了一个神秘的任务: var _ fs.Node = (*Dir)(nil) 有人能解释一下这种语法的机制吗?它如何适合声明它的上下文?据我所知,赋值的结果实际上被忽略了(右手表达式甚至会导致什么?nil Dir指针?这使得编译器检查type*Dir是否满足fs.Node接口 取一个nil指针,将其设为*Dir指针,并将其分配给接口类型为fs.Node的未命名变量。因为我们从不使用这个变量,所以必须使它不命名

在阅读关于在go中编写FUSE文件系统的教程时,我遇到了一个神秘的任务:

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

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

这使得编译器检查type
*Dir
是否满足
fs.Node
接口

取一个
nil
指针,将其设为
*Dir
指针,并将其分配给接口类型为
fs.Node
的未命名变量。因为我们从不使用这个变量,所以必须使它不命名