Swift 元组

在 Swift 中,元组是将不同值组合在一起的单元。而且,元组中的每个值都可以是不同的数据类型。

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


创建元组

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

var product = ("MacBook", 1099.99)

在此,product 是一个元组,包含字符串值 Macbook 和整数值 1099.99


访问元组元素

数组 类似,元组的每个元素都由索引号(01、...)表示,其中第一个元素位于索引 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.0product.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 的元组,其值为:MacBook1099.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

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

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

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


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 字典

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战