一尘不染

忽略输出的golang nil指针分配-(*)(nil)

go

同时,通过去这个教程中去写FUSE文件系统,我遇到了这个神秘的分配:

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

有人可以解释这种语法的机制吗?它在声明它的上下文中如何适应?据我了解,赋值的结果实际上被忽略了(正确的表达式甚至会导致什么?nir Dir指针?)


阅读 339

收藏
2020-07-02

共1个答案

一尘不染

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

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

2020-07-02