如果我有一个像这样的元组
var answer: (number: Int, good: Bool)
我该如何获取其中一个元素?
这种方法不起作用:
answer["number"]
我参考了这个问题:Swift: Get an array of element from an array of tuples,不过我的问题更基础一些。我在文档中找到了答案,因此在下面以问答形式添加了我的答案,以便于未来更快地搜索。
如果我有一个像这样的元组
var answer: (number: Int, good: Bool)
我该如何获取其中一个元素?
这种方法不起作用:
answer["number"]
我参考了这个问题:Swift: Get an array of element from an array of tuples,不过我的问题更基础一些。我在文档中找到了答案,因此在下面以问答形式添加了我的答案,以便于未来更快地搜索。
var answer: (number: Int, good: Bool) = (100, true)
方法1
将元素变量名放入一个元组中。
let (firstElement, _) = answer
let (_, secondElement) = answer
或者let (firstElement, secondElement) = answer
方法二
使用索引。
let firstElement = answer.0
let secondElement = answer.1
方法三
使用元素名称。当然,前提是在Tuple声明中已经命名了元素。
let firstElement = answer.number
let secondElement = answer.good
protocol SubscriptTuple {
associatedtype Tuple
associatedtype Return
var value: Tuple { get set }
subscript(sub: String) -> Return? { get }
}
struct TupleContainer: SubscriptTuple {
typealias Tuple = (number: Int, good: Bool)
typealias Return = Any
var value: Tuple
subscript(sub: String) -> Return? {
switch sub {
case "number":
return value.number
case "good":
return value.good
default:
return nil
}
}
}
let answer = Answer(value: (120, false))
answer["number"]