//元组把多个值合并成单一的复合型值。
let error = (404,"请求失败")
//元组的值可以是任何类型,而且可以不必是同一类型。
print(error.0)//"404\n"
print(error.1)//"请求失败\n"
//元组中的每一个元素可以指定对应的元素名称。
let errorNot = (errorCode:404,errorMessage:"网络请求失败!")
print(errorNot.errorCode)//"404\n"
print(errorNot.errorMessage)//"网络请求失败!\n"
//如果没有指定名称的元素也可以使用下标的方式引用。
print(errorNot.0)//"404\n"
print(errorNot.1)//"网络请求失败!\n"
//用var定义的元组就是可变元组,let定义的元组就是不可变元组。
let locMsg:(lat:Double,lng:Double) = (lat:44.3245,lng:166.14214)
//不管是可变还是不可变元组,元组创建后就不能增加和删除元素。
var playMsg:(move:Float,des:Any)
//可以对可变元组的元素进行修改,但是不能改变其类型。
var shopCode = (code:202,message:"粉条")
shopCode.code = 101
shopCode.message = "糯米"
//any类型可以改为任何类型。
var moveMsg:(speed:Float,des:Any) = (speed:13,des:"移动啊移动")
moveMsg.des = 12
moveMsg.des = "跑啊跑"
//以将一个元组的内容分解成单独的常量或变量。
let http404Error = (404, "Not Found")
let (statusCode, statusMessage) = http404Error
print(statusCode)//"404\n"
print(statusMessage)//"Not Found\n"
//如果只需要使用其中的一部分数据,不需要的数据可以用下划线(_)代替。
let (_, statusMessageDes) = http404Error
print(statusMessageDes)//"Not Found\n"
//使用Tuple为函数返回多个值。
func runMsg(name:String,age:Int,speed:Float) ->(Bool,String){return (age > 18 && speed > 15,"Name is \(name) run!")
}//返回值的Tuple可以在函数的返回类型部分被命名。
func playMsg(name:String,age:Int,speed:Float) ->(isSuccess:Bool,mes:String){return (age > 18 && speed > 15,"Name is \(name) run!")
}