泛型编程不仅能泛化算法中涉及的概念(数据类型),还能泛化行为(函数、方法、运算)。
基础部分:
与类型无关的变量和函数,通用部分;
扩展部分(swift):
与类型相关的函数其它扩展;
泛型关注通用的算法和数据组织形式;
关注与类型无关的算法和数据组织形式;
偏重数据的泛型(强泛型成员变量)关注数据的组织及在此组织上的算法;
偏重算法的泛型强调算法的通用性;
类型无关性:类型无关的数据组合形式和算法
Using parametric polymorphism, a function or a data type can be written generically so that it can handle values identically without depending on their type.[1] Such functions and data types are called generic functions and generic datatypes respectively and form the basis of generic programming.
https://en.wikipedia.org/wiki/Parametric_polymorphism
抽象的方向:
泛型:跨类型抽象,多个类型的通用部分;
构造型抽象;
接口类:多个类型具有共同的数据和建立在确定类型上的接口行为;
继承性抽象;
typeclass:
同时具有上述两种特征。
------------------越是喧嚣的世界,越需要宁静的思考------------------ 合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。 积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。骐骥一跃,不能十步;驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也。