我今天了解了元组,简而言之它们允许你存储多个值,一个tupel的例子是
let exampleTuple = (exampleString: "This", exampleInt: 1)
我们可以使用点表示法轻松访问元组的任何值,例如:
exampleTuple.exampleString
对我而言,这似乎与持有某些信息的对象非常相似,我可能会遗漏某些东西或者完全不理解元组,因此我要求解释何时应该使用元组或对象?
答案 0 :(得分:2)
元组对临时的相关值组很有用。它们不适合创建复杂的数据结构。
他们通过数据范围定义“临时”:如果一段数据永远不会离开单个方法的范围,或者同一个对象的一组方法,它可以被认为是临时的,即使它可能非常在应用程序的生命周期中保持良好状态。
如果您的数据结构在临时范围之外有用 - 例如,因为它需要从类的公共方法返回,请将其建模为类或结构,而不是作为元组。
另一个重要的考虑因素是将行为与您的数据相关联:如果您的对象需要具有方法,请为它们使用类。仅将元组用于没有行为的数据。
答案 1 :(得分:1)
元组在Python中被大量使用,在我看来,它们在Swift中的作用大致相同。将其视为从一个点到另一个点提供多个值的快速方法。 Swift书中显示的一个示例和Python中常用的模式是从方法返回HTTP状态代码和文本正文:
func greeting() {
return (200, "Hello World")
}
...
let (status, body) = greeting()
if 200 == status {
println(body)
}
else if status >= 400 {
println("Error \(status): \(body)")
}
当然这仅仅是一个用例,但我认为它得到了重点。内置示例是函数enumerate()
,它返回(index, value)
的元组:
for (idx, val) in enumerate(["a", "b", "c"]) {
println("Index \(idx): \(val)")
}