在计算机编程世界里会接触到一个知识点 —— duck typing,叫“鸭子类型”。
它有一个形象的解释:
“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”
怎么去理解这句话呢?
鸭子,假如我们都不知道它表示什么。我定义:会走的、会游泳的、会叫的鸟 —— 叫“鸭子”。
我定义的这个“鸭子”,可以说是一个分类,在这个分类里,都是包含了具有共同技能(走、游泳和叫)的鸟。
这个“鸭子”就属于“鸭子类型”。对于这个类型里的每一个成员(不只有“鸭子”),其分类的依据就是具有共同的技能,也就是都会做什么,而不关心你到底是那种鸟。
又比如,我们又定义:会斗鸡、爱翘二郎腿的人 —— 叫“汉子”,那么这个“汉子”也属于“鸭子类型”。
这就是 duck typing。