接口类型使用

参考:https://time.geekbang.org/column/article/18037?utm_source=weibo&utm_medium=xuxiaoping&utm_campaign=promotion&utm_content=columns

接口类型与其他数据类型不同,它是没法被实例化的。更具体地说,我们既不能通过调用new函数或make函数创建出一个接口类型的值,也无法用字面量来表示一个接口类型的值。接口类型声明中的这些方法所代表的就是该接口的方法集合。一个接口的方法集合就是它的全部特征。

怎样判定一个数据类型的某一个方法实现的就是某个接口类型中的某个方法呢?
有两个充分必要条件,一个是“两个方法的签名需要完全一致”,另一个是“两个方法的名称要一模一样”。显然,这比判断一个函数是否实现了某个函数类型要更加严格一些。

对于任何数据类型,只要它的方法集合中完全包含了一个接口的全部特征(即全部的方法),那么它就一定是这个接口的实现类型。这种方式还有一个专有名词,叫“Duck typing”,中文常译作“鸭子类型”

猜你喜欢

转载自blog.51cto.com/daixuan/2462560