确认某类型已实现某接口
在Go中,接口是被隐式实现的,您不需要显式声明某类型要实现某接口。
这很方便,但当我们没有完全实现某接口时,编译器没法检查出这种错误。
这有一种方法可以进行编译类型检查:
编译上述代码会报出如下错误:
我们打算让MyReadCloser
结构体实现io.ReadCloser
接口。但是,我们忘记了实现Close
方法。
下面这行代码会在编译时就发现问题:
我们打算把*MyReadCloser类型的值赋值给io.ReadCloser类型的变量。
因为*MyReadCloser类型并没有实现Close方法,编译器就会在编译时发现无效的赋值操作。
我们把值赋给空白标识符(blank identifier) _
,是因为我们不会用这个变量做任何事情。
最后更新于