Swift中添加了一个新类型,即Tuples。 我只知道元组中的值可以是任何类型,并且不必是彼此相同的类型。 但除此之外,阵列/字典是否可以做什么,但是元组可以,反之亦然?
答案 0 :(得分:3)
啊,就在昨天,我使用一个返回元组的函数给出了答案。输出两个不同类型的值。有人想使用switch语句来匹配狗的名字和年龄:
func dogMatch(age: Int, name: String) -> (Match: String, Value: Int) {
switch (age, name) {
case(age, "wooff"):
println("My dog Fido is \(age) years old")
return ("Match", 1)
case (3, "Fido"):
return ("Match", 10)
default:
return ("No Match", 0)
}
}
dogMatch(3, "Fido").Match
dogMatch(3, "Fido").Value
请注意,元组包含不同类型的值。
答案 1 :(得分:1)
我想到的一件事是在元组中命名变量。在某些情况下,这比键或索引更可取:
let newTuple = (variableOne: 20, variableTwo: "Hi There")
newTuple.variableOne
newTuple.variableTwo
您可以使用typealias
进一步应用此功能:
typealias namedTuple = (variableOne: Int, variableTwo: String)
let newTuple: namedTuple = (20, "Hi There")
newTuple.variableOne
newTuple.variableTwo
您还可以更明确地了解函数中的返回类型:
func controlledReturnType() -> (Int, String) {
return (1, "Yup")
}