在看一些源码的过程中,发现一些如下的写法:
1 | // var _ Interface = (*Type)(nil) |
其中 FastInvoker
是一个 interface
,而 LoggerInvoker
实现了 FastInvoker
的方法。
这样看起来没什么作用,但是却可以帮助我们在编译期就发现 LoggerInvoker
是否实现了 FastInvoker
接口, 因为我们这样写了之后,编译器会去检查,如果 LoggerInvoker
没有实现 FastInvoker
就会报错了。
这样我们就可以在编译的时候发现代码潜在的问题。