斯威夫特的元组

时间:2014-09-22 22:59:30

标签: swift tuples

Swift中添加了一个新类型,即Tuples。 我只知道元组中的值可以是任何类型,并且不必是彼此相同的类型。 但除此之外,阵列/字典是否可以做什么,但是元组可以,反之亦然?

2 个答案:

答案 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")
}