知识卡片
泛型用类型占位符消灭因类型不同而复制的代码
内容
同一段逻辑(比如交换两个变量的值、往一个栈里压入/弹出元素),如果分别针对 Int、String、自定义类型各写一份函数或结构体,代码结构完全一样、只有类型标注不同,维护时每改一处逻辑都要同步改 N 份。泛型用一个类型占位符(如 <T>、<Element>)代替具体类型名,把”这段逻辑对哪种类型都成立”这件事直接在类型系统层面表达出来:占位符本身不代表任何具体类型,只保证同一处出现的占位符在一次具体调用/实例化中必须是同一类型,真正的类型在调用或创建实例时才被填入。数组、字典这些标准库容器本身就是用泛型实现的,”看起来很自然的通用容器”背后就是这个机制在支撑。
参考来源
《Swift全解析:新式iOS实战开发》第18章《Swift泛型》