在 Swift 中,元组是将不同值组合在一起的单元。而且,元组中的每个值都可以是不同的数据类型。
假设我们需要存储有关产品名称和价格的信息,我们可以创建一个元组,其中一个值用于存储名称(字符串),另一个值用于存储价格(浮点数)。
创建元组
在 Swift 中,我们使用括号 ()
来存储元组的元素。例如:
var product = ("MacBook", 1099.99)
在此,product
是一个元组,包含字符串值 Macbook
和整数值 1099.99。
访问元组元素
与 数组 类似,元组的每个元素都由索引号(0、1、...)表示,其中第一个元素位于索引 0。
我们使用索引号来访问元组元素。例如:
// access the first element
product.0
// access second element
product.1
示例:Swift 元组
// create tuple with two elements
var product = ("MacBook", 1099.99)
// access tuple elements
print("Name:", product.0)
print("Price:", product.1)
输出
Name: MacBook Price: 1099.99
在上面的示例中,我们创建了一个名为 product
的元组,其中包含两个值。
我们使用索引号:product.0
和 product.1
来访问元组元素。
注意:由于元组的第一个值是字符串,第二个值是整数。因此,元组的类型是 (String, Int)
。
修改元组元素
我们可以通过为特定索引分配新值来修改元组元素。例如:
// create tuple with two elements
var product = ("MacBook", 1099.99)
print("Original Tuple: ")
// access tuple elements
print("Name:", product.0)
print("Price:", product.1)
// modify second value
product.1 = 1299.99
print("\nTuple After Modification: ")
// access tuple elements
print("Name:", product.0)
print("Price:", product.1)
输出
Original Tuple: Name: MacBook Price: 1099.99 Tuple After Modification: Name: MacBook Price: 1299.99
在上面的示例中,我们创建了一个名为 product
的元组,其值为:MacBook
和 1099.99。请注意以下行:
product.1 = 1299.99
在这里,我们将索引 1 处的元组值更改为 1299.99。
注意:元组索引始终从 0 开始。因此,元组的第一个元素位于索引 0,而不是 1。
命名元组
在 Swift 中,我们还可以为元组的每个元素提供名称。例如:
var company = (product: "Programiz App", version: 2.1)
要访问命名元组的元素,我们也可以使用这些名称而不是索引号。
// access "Programiz App"
company.product
示例:命名元组
// create named tuple
var company = (product: "Programiz App", version: 2.1)
// access tuple element using name
print("Product:", company.product)
print("Version:", company.version)
输出
Product: Programiz App Version: 2.1
在上面的示例中,我们为元组的第一个和第二个元素提供了名称:product
和 version
。
我们使用 .
符号和提供的名称来访问元组的相应值。
注意:使用命名元组是最佳实践,因为它能使我们的代码更具可读性。
Swift 嵌套元组
在 Swift 中,我们可以将一个元组创建为另一个元组的元素。例如:
var alphabets = ("A", "B", "C", ("a", "b", "c"))
在这里,我们将元组 ("a", "b", "c")
作为 alphabets
元组的第三个元素。这称为嵌套元组。
示例:嵌套元组
var alphabets = ("A", "B", "C", ("a", "b", "c"))
// access first element
print(alphabets.0) // prints "A"
// access the third element
print(alphabets.3)
// access nested tuple
print(alphabets.3.0) // prints "a"
在上面的示例中,请注意这一行:
print(alphabets.3)
在这里,我们首先访问了 alphabets
元组的第三个元素。
由于元组的第三个元素也是一个元组,我们使用了
alphabets.3.0
来访问嵌套元组的第一个元素。
向元组添加/删除元素
在 Swift 中,我们无法向元组添加或删除元素。例如:
var company = ("Programiz","Apple")
company.2 = "Google"
company.remove("Apple")
print(company)
输出
error: cannot convert value of type '(String, String)' error: value of tuple type '(String, String)' has no member '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 字典