Swift中泛型和协议一致性的功能。

在Swift协议和泛型中可以很好地协同工作,实际上有一个术语可以简化这种关系。 它被称为DRY(不要重复自己),它的意思是:使用抽象避免重复。 因此,在这里,我将向您展示泛型在Swift中的强大功能以及协议一致性如何提升泛型。

让我们看一下以下示例:

假设您要确定两个条件是否相等。 编写一个函数,该函数返回一个布尔值以根据我们正在比较的两个事物是否相等来返回true / false。 例如,让我们编写一个函数来测试两个整数值是否相等:

太酷了,现在可以测试两个整数是否相等,但是无法测试其他类型,例如Double’s,Floats和其他可以相等的Swift类型。 因此,使用Swift中的泛型以及协议一致性,我们可以做到这一点:

哦哦 ,现在发生了什么? 为什么会出现错误?

该错误是由于以下事实造成的:T是泛型类型,并且未知它是否可以相等。这就是协议一致性起着重要作用的地方。 因此,我们强制等于函数仅采用相等的参数类型。 这就是我们在Swift中可以做到的方式:

要么,

从上面的代码片段中可以看到,泛型和协议一致性如何真正帮助您避免编写重复的代码。 如果您开始在代码库中更频繁地使用泛型和协议,这是一个好习惯。 它肯定会简化您作为开发人员的生活。