Swift中的泛型…

泛型或泛型编程是swift的强大功能之一,它使我们能够编写灵活且可重用的函数类型,例如( Classs,Structs,enums )仍保持类型安全。

快速地,我们使用数组,字典可选类型的类型是泛型类型。 泛型在声明时需要类型参数。 当创建Generic类型的实例时,我们为type参数指定实际类型,以使实例成为具体类型,从而提供Type-Safety。

感谢Swift的Type-SafetyType推断,这使Generics的工作变得非常容易。 DRY原理是通过在我们的代码中适合的任何位置使用泛型来实现的。 您可以编写避免重复的代码,并以清晰抽象的方式表达其意图。

注意:mutating关键字用于更改结构或枚举的自身属性。 如果有任何func试图更改其自己的类型属性,我们需要在func定义之前使用mutating关键字。

在上图中,在定义扩展名时,我们没有为正在扩展的类型设置类型。 无需再次指定扩展类型。

我们可以使用类类型以及上面示例中使用结构的方式。

具有通用约束:

有了约束,我们可以通过允许我们要使用的类型来限制可访问性。 如果尝试传递不满足约束的值,则会出现以下错误。

在下面的示例中,我们限制了where子句,因此我们可以实现更严格的类型安全性…

我们可以通过指定related -type,在协议中使用通用类型,如下所示。 我们可以通过将关联类型限制为必需或允许的类型来进一步限制关联类型。