元组类型,用于在单个复合值中对多个值进行分组
元组中的值可以是任何类型,并且不需要是相同类型
声明:
元组声明的语法
var TupleName = (Value1, value2, ..., any number of values)
方式1:最简单的元组,就是在圆括号中,用逗号分隔的一组值
var aTuple = (10, "TottiLV")
是一个具有两个值的元组,一个元素是整数类型,另一个元素是字符串类型(这是一个合法的数据)
方式2:可以在声明时命名元组的变量,也可以使用它们的名称来调用
let error404= (errorCode:401, description:"Not Found")
数组和字典组合
let arr = [1,2,3]
let dic = ["key1":"value1","key2":"value2","key3":"value3"]
let anyTuple = (arr, dic)
取值
方式1:使用下标
print("The code is:\(aTuple.0)")
print("The definition of error is:\(aTuple.1)")
方式2:使用元素名称
print("The code is:\(error404.errorCode)")
print("The description of error is:\(error404.description)")
方式3:拆分成常量/变量
let (x,y) = aTuple
print("x==\(x)")
print("y==\(y)")
应用:
1、作为函数参数
func foo(_ argv: (Int, Int ,String)) -> Int{
return argv.0
}
let arguments = (4,3,"hello")
let result = foo(arguments)
print("result=\(result)")
2、作为函数返回值
func foo1() -> (Int, Int, String){
return (3,4,"hello")
}
let(a,b,c) =foo1()
print("a==\(a)")
print("b==\(b)")
print("c==\(c)")
总结:
元组优点:
1、元组可以同时存储多种类型元素,且元素类型固定,以保数据安全,除非你定义数据类型为Any。编译器会对赋值参数类型进行检查
2、元组的元素个数固定,不允许增加、删除,编译器会严格校验赋值参数个数
3、无需定义key,但是必要时可以为数据命名,方便数据访问
4、适合同时遍历多元数据
元组缺点:
1、不适合存储大量数据,因为元组不支持append、remove等方法
2、考虑到工程实际情况,后段使用的语言可能不支持元组,需要转换为其他格式
元组适合应用于组合少量的多元的数据,与数组、字典结合使用可以产生强大威力
网友评论