Swift 元组(Tuple)
在本教程中,我们将通过实例学习 Swift 元组的所有内容
在 Swift 中,元组是一组不同的值。而且,元组中的每个值可以具有不同的数据类型。
假设我们需要存储关于产品名称和价格的信息,我们可以创建一个元组,其中一个值用于存储名称(String),另一个值用来存储价格(float)。
创建一个元组
在 Swift 中,我们使用括号 ()
来存储元组的元素。例如,
var product = ("MacBook", 1099.99)
这里,乘积是一个具有字符串值 Macbook 和整数值 1099.99 的元组。
访问元组元素
像 数组 一样,元组的每个元素由索引号(0,1,…)表示,其中第一个元素位于索引 0。
我们使用索引号访问元组元素。例如,
// access the first element
product.0
// access second element
product.1
实例
// 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
来访问元组元素。
修改 Tuple 元素
我们可以通过为特定索引分配新值来修改元组元素。例如,
// 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。
命名元组
在 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")
作为字母表元组的第三个元素。这称为嵌套元组。
实例
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.3.0
以访问嵌套元组的第一个元素。
从元组中添加/删除元素
我们无法在 Swift 中添加或删除元组中的元素。例如,
var company = ("Cankaoshouce","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'
这里,我们创建了一个值为 "Cankaoshouce" 和 "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"]
在上面的实例中,元组的第 3 个元素是字典,
["Nepal": "10 PM", "England": "10 AM"]
正如我们所知,我们可以向字典中添加元素。所以,我们使用下面的代码。
laptopLaunch.2["USA"] = "11 AM"
在字典中添加元素。
这样我们就可以向元组中添加元素。而且,元组的类型仍然相同 (String, String, Dictionary)
。所以,我们没有得到任何错误。
要了解有关字典的更多信息,请访问 Swift dictionary。