泛型-我一直看到的“元素”参数是什么? (速记3)

在学习Swift的过程中,我注意到一些函数要求使用Element类型的参数。 我有点被为什么要求我们提供一个类型变量感到困惑 我从未听说过像Array这样熟悉的东西……

例如,让我们看一下在字符串 数组上调用的append()方法

当我们使用自动填充来完成append函数时,系统会要求您提供一个参数: newElement:Element。 因为我们已经知道数组包含字符串,所以为什么类型不是String的参数呢?

append方法将接受String并打印该方法,并将新字符串添加到Array的末尾。 那么,这是怎么回事? 为什么要求我为该方法提供一个Element,但是它将接受一个String

让我们再思考一下数组 。 我们创建的每个数组都有可用的append()方法,但并非所有数组都属于同一类型。 与其在String Array上使用append() ,不如在Int Array上尝试一下。

真好! 即使我们的数组类型从[String]更改为[Int],我们也可以使用Element类型来传递StringInt参数 由于数组中各项的类型正在更改,因此使用Element可以根据数组中的内容传递正确的类型。

但仍然..什么是Element ? 这是一堂课吗? 结构? 事实证明,它被称为“通用代码”。 这里直接来自Apple文档:

“通用代码使您可以编写灵活,可重用的函数和类型,这些函数和类型可以根据您定义的要求与任何类型一起使用。 您可以编写避免重复的代码,并以清晰抽象的方式表达其意图。”