Swift 元组(Tuple)

在本教程中,我们将通过实例学习 Swift 元组的所有内容

在 Swift 中,元组是一组不同的值。而且,元组中的每个值可以具有不同的数据类型。

假设我们需要存储关于产品名称和价格的信息,我们可以创建一个元组,其中一个值用于存储名称(String),另一个值用来存储价格(float)。


创建一个元组

在 Swift 中,我们使用括号 () 来存储元组的元素。例如,

  1. var product = ("MacBook", 1099.99)

这里,乘积是一个具有字符串值 Macbook 和整数值 1099.99 的元组。


访问元组元素

数组 一样,元组的每个元素由索引号(0,1,…)表示,其中第一个元素位于索引 0

我们使用索引号访问元组元素。例如,

  1. // access the first element
  2. product.0
  3. // access second element
  4. product.1

实例

  1. // create tuple with two elements
  2. var product = ("MacBook", 1099.99)
  3. // access tuple elements
  4. print("Name:", product.0)
  5. print("Price:", product.1)

结果为:

  1. Name: MacBook
  2. Price: 1099.99

在上面的实例中,我们创建了一个名为 product 的元组,其中包含两个值。

我们使用了索引号:product.0product.1 来访问元组元素。

注意:由于元组的第一个值是字符串,第二个值是整数。所以元组的类型是(String,Int)。

修改 Tuple 元素

我们可以通过为特定索引分配新值来修改元组元素。例如,

  1. // create tuple with two elements
  2. var product = ("MacBook", 1099.99)
  3. print("Original Tuple: ")
  4. // access tuple elements
  5. print("Name:", product.0)
  6. print("Price:", product.1)
  7. // modify second value
  8. product.1 = 1299.99
  9. print("\nTuple After Modification: ")
  10. // access tuple elements
  11. print("Name:", product.0)
  12. print("Price:", product.1)

结果为:

  1. Original Tuple:
  2. Name: MacBook
  3. Price: 1099.99
  4. Tuple After Modification:
  5. Name: MacBook
  6. Price: 1299.99

在上面的实例中,我们创建了一个名为 product 的元组,其值为:MacBook1099.99

  1. product.1 = 1299.99

这里,我们将索引 1 处的元组值更改为 1299.99

注意:元组索引总是从 0 开始。因此,元组的第一个元素出现在索引 0,而不是 1

命名元组

在 Swift 中,我们还可以为元组的每个元素提供名称。例如,

  1. var company = (product: "Programiz App", version: 2.1)

要访问命名元组的元素,我们还可以使用这些名称而不是索引号。

  1. // access "Programiz App"
  2. company.product
实例
  1. // create named tuple
  2. var company = (product: "Programiz App", version: 2.1)
  3. // access tuple element using name
  4. print("Product:", company.product)
  5. print("Version:", company.version)

结果为:

  1. Product: Programiz App
  2. Version: 2.1

在上面的实例中,我们为元组的第一个和第二个元素提供了名称:productversion

我们使用了 . 符号和提供的名称来访问元组的相应值。

注意:使用命名元组是最佳实践,因为它使我们的代码更具可读性。

Swift 嵌套元组

在 Swift 中,我们可以创建一个元组作为另一元组的元素。例如

  1. var alphabets = ("A", "B", "C", ("a", "b", "c"))

这里,我们有一个元组("a", "b", "c")作为字母表元组的第三个元素。这称为嵌套元组。

实例
  1. var alphabets = ("A", "B", "C", ("a", "b", "c"))
  2. // access first element
  3. print(alphabets.0) // prints "A"
  4. // access the third element
  5. print(alphabets.3)
  6. // access nested tuple
  7. print(alphabets.3.0) // prints "a"

注意这一行,

  1. print(alphabets.3)

在这里,我们首先访问了字母表元组的第三个元素。

由于的第三个元素也是一个元组,我们使用,

  1. alphabets.3.0

以访问嵌套元组的第一个元素。


从元组中添加/删除元素

我们无法在 Swift 中添加或删除元组中的元素。例如,

  1. var company = ("Cankaoshouce","Apple")
  2. company.2 = "Google"
  3. company.remove("Apple")
  4. print(company)

结果为:

  1. error: cannot convert value of type '(String, String)'
  2. error: value of tuple type '(String, String)' has no member 'remove'

这里,我们创建了一个值为 "Cankaoshouce" 和 "Apple" 的元组。现在,元组的类型固定为(String,String)。

因此,当我们尝试从元组中添加和删除元素时,会出现错误。

元组中的字典

在 Swift 中,我们可以使用字典向元组添加元素。例如,

  1. var laptopLaunch = ("MacBook", 1299, ["Nepal": "10 PM", "England": "10 AM"])
  2. print(laptopLaunch.2)
  3. laptopLaunch.2["USA"] = "11 AM"
  4. print(laptopLaunch.2)

结果为:

  1. ["Nepal": "10 PM", "England": "10 AM"]
  2. ["Nepal": "10 PM", "England": "10 AM", "USA": "11 AM"]

在上面的实例中,元组的第 3 个元素是字典,

  1. ["Nepal": "10 PM", "England": "10 AM"]

正如我们所知,我们可以向字典中添加元素。所以,我们使用下面的代码。

  1. laptopLaunch.2["USA"] = "11 AM"

在字典中添加元素。

这样我们就可以向元组中添加元素。而且,元组的类型仍然相同 (String, String, Dictionary)。所以,我们没有得到任何错误。

要了解有关字典的更多信息,请访问 Swift dictionary