说我有一个返回tuple
的方法,并且该元组有一个键。如何使用键而不是索引或位置访问该元组?
import Cocoa
func getValues() -> (Int, Int) {
return (firstVal: 1, secondVal: 2)
}
let result = getValues()
print(result)
print(result.firstVal)
在上面的print(result)
中返回元组,减去键,然后print(result.firstVal)
抛出错误。
error: Tuples.playground:3:7: error: value of tuple type '(Int, Int)' has no member 'firstVal'
print(result.firstVal)
^ ~~~~~~~~
答案 0 :(得分:5)
您还需要在功能签名中包含标签。
func getValues() -> (firstVal: Int,secondVal: Int) {
return (firstVal: 1, secondVal: 2)
}
最好为您的自定义元组定义一个typealias
:
typealias ValueTuple = (firstVal: Int,secondVal: Int)
func getValues() -> ValueTuple {
return (firstVal: 1, secondVal: 2) // or even return (1,2) works
}
答案 1 :(得分:0)
只是一个建议。
我建议使用结构而不是元组。
struct
易于扩展。例如。可以在struct
内部实现功能。
唯一有用的功能是从该函数返回多个结果。
这就是为什么
struct ValueStruct {
let firstVal: Int
let secondVal: Int
}
func getValues() -> ValueStruct {
return ValueStruct(firstVal: 1, secondVal: 2)
}