今天,我只是研究一些基本的快速概念,并通过一些示例来理解这些概念。现在,我已经完成了元组的学习。
我有一个疑问,即使用元组有什么需要?是的,我对此做了一些挖掘:
我们可以从一个函数返回多个值。好的,但是我们也可以通过返回一个数组来做到这一点。 数组可以,但是我们可以返回不同类型的多个值。好的,但是这也可以通过AnyObject数组来完成,如下所示:
我们可以从一个函数返回多个值。好的,但是我们也可以通过返回一个数组来做到这一点。
数组可以,但是我们可以返回不同类型的多个值。好的,但是这也可以通过AnyObject数组来完成,如下所示:
func calculateStatistics (scores:[Int])->[AnyObject] { var min = scores[0] var max = scores[0] var sum = 0 for score in scores { if score > max{ max = score } else if score < min{ min = score } sum += score } return [min,max,"Hello"] } let statistics = calculateStatistics([25,39,78,66,74,80]) var min = statistics[0] var max = statistics[1] var msg = statistics[2] // Contains hello
我们可以命名元组中存在的对象。好的,但是我可以使用AnyObject的字典。
我并不是说为什么要使用元组。但是应该有一些只有元组才能够做的事情,或者只有元组才容易做到的事情。而且,如果没有充分的理由,那么创建swift的人就不会让tuple参与其中。因此,应该有一些充分的理由让他们参与其中。
所以,请让我知道在某些情况下元组是最好的选择。
提前致谢。
元组是可以以多种方式使用的匿名结构,其中之一是使从函数返回多个值变得更加容易。
使用元组而不是数组的优点是:
[AnyObject]
let tuple = functionReturningTuple()
或所有参数都可以自动提取并分配给变量
let (param1, param2, param3) = functionReturningTuple()
有可能忽略一些值
let (param1, _, _) = functionReturningTuple()
// SWIFT 2 func doSomething(number: Int, text: String) { println("\(number): \(text)") } doSomething(1, "one") // SWIFT 3 func doSomething(number: Int, text: String) { print("\(number): \(text)") } doSomething(number: 1, text: "one")
(在Swift 2中已弃用)该函数还可以通过以下方式调用:
let params = (1, "one") doSomething(params)
该列表可能并不详尽,但是我认为有足够的理由让您喜欢将元组添加到数组中以返回多个值