看看下面的代码。
Go 是隐式实现 interface 的,所以 TestStruct 是 EmptyInterface。
由于 *TestStruct 有一个 Func 函数,所以它还是 WithFuncInterface。
好了,看下面的几个函数:判断参数是不是 nil。
接下来看看 main 函数。
你一定觉得我在逗你,这显然会 print 3 个 true 并且产生一个 NullPointer 之类的错。
然而事实是:
Haha!
这就是 Go,不爽不要玩。
我觉得很多人可能没理解我想表达什么,完美符合我对 Go 社区的印象:
- 它实现如此,故而其为真理
- 它是为真理,故而其为优雅