跳到主要内容

Swift中的元组

提示
  1. 元组的基本定义:在Swift中,元组是存储不同数据类型值的组合,例如存储产品的名称和价格。
  2. 访问和修改元组元素:元组元素通过索引或名称(如果指定)进行访问和修改,索引从0开始。
  3. 元组的局限性:元组不允许动态添加或删除元素,但可以通过嵌入如字典这样的可变数据类型来间接修改其内容。

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

假设我们需要存储产品的名称和价格信息,我们可以创建一个元组,其中一个值用于存储名称(字符串),另一个值用于存储价格(浮点数)。

创建元组

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

var product = ("MacBook", 1099.99)

这里,product 是一个包含字符串值 MacBook 和整数值 1099.99 的元组。

访问元组元素

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

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

// 访问第一个元素
product.0

// 访问第二个元素
product.1

示例:Swift 元组

// 创建包含两个元素的元组
var product = ("MacBook", 1099.99)

// 访问元组元素
print("名称:", product.0)
print("价格:", product.1)

输出

名称: MacBook
价格: 1099.99

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

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

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

修改元组元素

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

// 创建包含两个元素的元组
var product = ("MacBook", 1099.99)

print("原始元组: ")

// 访问元组元素
print("名称:", product.0)
print("价格:", product.1)

// 修改第二个值
product.1 = 1299.99

print("\n修改后的元组: ")

// 访问元组元素
print("名称:", product.0)
print("价格:", product.1)

输出

原始元组:
名称: MacBook
价格: 1099.99

修改后的元组:
名称: MacBook
价格: 1299.99

在上述示例中,我们创建了一个名为 product 的元组,值为:MacBook1099.99。注意这行代码,

product.1 = 1299.99

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

注意:元组的索引始终从 0 开始。因此,元组的第一个元素位于索引 0,而不是 1

命名元组

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

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

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

// 访问 "Programiz App"
company.product

示例:命名元组

// 创建命名元组
var company = (product: "Programiz App", version: 2.1)

// 使用名称访问元组元素
print("产品:", company.product)
print("版本:", company.version)

输出

产品: Programiz App
版本: 2.1

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

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

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

Swift 嵌套元组

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

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

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

示例:嵌套元组

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

// 访问第一个元素
print(alphabets.0) // 打印 "A"

// 访问第三个元素
print(alphabets.3)

// 访问嵌套元组
print(alphabets.3.0) // 打印 "a"

在上面的示例中,注意这一行,

print(alphabets.3)

这里,我们首先访问了 alphabets 元组的第三个元素。

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

alphabets.3.0

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

从元组中添加/删除元素

在 Swift 中,我们不能从元组中添加或删除元素。例如,

var company = ("Programiz", "Apple")

company.2 = "Google"

company.remove("Apple")

print(company)

输出

error: 不能将类型 '(String, String)' 的值转换为
error: 元组类型 '(String, String)' 没有成员 'remove'

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

所以,当我们尝试从元组中添加和删除元素时,我们会得到错误。

元组中的字典

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

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

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

print(laptopLaunch.2)

输出

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

在上述示例中,元组的第三个元素是一个字典

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

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

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

在字典中添加元素。

这样我们就能向元组中添加一个元素。并且,元组的类型仍然是相同的 (String, String, Dictionary)。因此,我们不会遇到任何错误。

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