泛型(Generic)是Swift新引入的强大特征,可以写出根据自我需求定义、适用于任何类型的,灵活且可重用的函数和类型。可以避免重复的代码,用一种清晰和抽象的方式来表达代码的意图。
基本使用
如下,我们需要定义一个函数用于实现两个整数的交换。
那么,如果再需要一个函数来实现两个字符串的交换呢?再次定义一个专用的函数是不是太麻烦了?这时候,就可以考虑使用泛型了。
其中,T代表泛型类型,必不可少。即代表参数a,b可以为任意类型,该函数swap可接收通用的数据类型。
使用泛型实现通用的栈结构
泛型的使用场景非常丰富,适用于struct。
因此,可以使用泛型来实现通用的栈结构,如下图:
代码一目了然,就不做过多解释了。
注意:因为Struct是值类型,在其实例方法中修改其属性要加mutating关键字。