Swift学习笔记之元组 tuples

Swift学习笔记之元组(tuples)

本文主要介绍Swift中元组的相关信息,非常详细,对大家有一定的参考价值。有需要的人来看看吧。

元组

元组是其他类型的组合。元组可以包含零个或多个类型,例如字符串、整数、字符、布尔和其他元组。还要注意,元组是值传递,而不是引用。

在Swift中创建元组的方法很简单。元组类型是零个或多个类型的列表,由括号括起来,并用逗号分隔。例如:

让firstHighScore=(玛丽,9001)

此外,创建元组时,还可以命名元组中的元素:

let secondHighScore=(姓名:詹姆斯,分数:4096)

这是创建元组的两种方法,非常简单明了。不需要像创建struct那样写出它的结构和内部属性,也不需要像创建class那样写初始化方法。你只需要把你想用的任何类型的值放在括号里,用逗号分开。如果愿意,还可以给每个元素命名,以提高元组的使用效率。

从元组中读元素

如果我们没有命名一个元组的元素,我们可以使用点语法通过定义的元组变量或常量来获得它的第1到第n个元素:

让firstHighScore=(玛丽,9001)

println(first high score . 0)//Mary

println(first high score . 1)//9001

如果你觉得上面的方法会造成语义歧义,那么我们也可以把一个元组赋给一个有元素名的元组(元素名的个数要对应):

let(名字,分数)=firstHighScore

println(名字)//玛丽

println(firstScore) //9001

如果只需要元组值的一部分,可以在分解时用下划线(_)标记要忽略的部分:

let (_,firstScore)=firstHighScore

println(firstScore) //9001

如果我们已经命名了元组中的元素,那么我们可以这样写它:

let secondHighScore=(姓名:詹姆斯,分数:4096)

println(second high score . name)//詹姆斯

println(second high score . score)//4096

将元组作为函数返回值

当您希望函数能够返回多种类型时,这是元组的最佳使用场景。

我们可以用元组作为函数的返回值,下面这些函数的返回值就是我们之前定义的secondHighScore元组:

func getahiscore()-(名称:字符串,分数:整数){

让那个名字=帕特丽夏

让分数=3894

return (theName,theScore)

}

为什么说上面函数的返回值是secondHighScore元组?因为getAHighScore函数返回的元组元素的个数、名称、类型与secondHighScore的相同。

事实上,在使用元组作为函数的返回值时,不必命名元素,只要理解每个元素的含义即可:

func getahiscore()-(String,Int) {

让那个名字=帕特丽夏

让分数=3894

return (theName,theScore)

}

如果您不确定返回的元组一定不能为零,那么您可以返回一个可选的元组类型:

func maybeGetHighScore()-(String,Int)?{

返回零

}

因为它是可选的元组类型,所以当返回的元组不为空时,需要解包该元组:

if let possible score=maybeGetHighScore(){

possibleScore.0

可能性核心1

}否则{

println(“这里什么也没有”)

}

注意:

当你定义一个没有返回值的函数时,该函数实际上返回一个空元组()。

元组的访问级别

元组的访问级别取决于它包含的元素。例如,如果一个元组中的所有元素都是私有的,那么该元组也是私有的。但这里有一个最低原则。也就是说,如果一个元组中有两个元素,一个是私有的,一个是公共的,那么这个元组遵循最小原则,它的访问级别是私有的。

元组是值类型

关于值类型和引用类型的知识在这里不再是累赘。让我们通过一个代码示例来看看元组是哪些类型:

var someScore=(约翰,55岁)

var anotherScore=someScore

anotherScore.0=罗伯特

println(another score . 0)//输出:“Robert”

println(some score . 0)//输出:“John”

从上面的代码示例可以看出,我给anotherScore赋了一些tuple,然后修改了anotherScore的第一个元素的值,最后分别打印了someScore和anotherScore的第一个元素的值。someScore元组的第一个元素的值是Robert,而anotherScore元组的第一个元素的值还是John。可见元组是值类型。

总结

这就是本文的全部内容。希望这篇文章的内容能给你的学习或者工作带来一些帮助。有问题可以留言交流。谢谢你的支持。

Swift学习笔记之元组 tuples