从具有多个返回值的函数创建常量

时间:2015-04-24 14:13:51

标签: ios swift

我已经查看了Apple指南swift和具有多个返回值的函数,但仍然不确定。可能这只是一个sytanx问题。

我有一个函数,它返回两个值,例如(CGPoint,CGVector)。

func returnTwoValues() -> (pointReturned: CGPoint, vectorReturned: CGVector) {
 return ...
} 

我希望创建一个let,它只是其中一个值的结果。即

let newPoint = returnTwoValues.pointReturned

但这不起作用,我该怎么做呢?

2 个答案:

答案 0 :(得分:1)

func returnTwoValues() -> (pointReturned: CGPoint, vectorReturned: CGVector) {
    return ...
}

你会用

var twoValues = returnTwoValues()
var pointReturned = twoValues.pointReturned

获取值,但

var pointReturned = returnTwoValues().pointReturned also work.

也许一个更简单的例子是

func getTwoInts() -> (intOne:Int, intTwo:Int){
    return (1,2)
}

var one = getTwoInts().intOne
var twoInts = getTwoInts()
var alsoOne = twoInts.intOne
var (oneInt,_) = getTwoInts()
var yetAnotherOne = getTwoInts().0

你有4种方法可以获得你的价值;)(感谢Martin R.获得第3名)

答案 1 :(得分:1)

这确实有效,你只是没有调用该函数。它试图在函数本身上找到一个名为pointReturned的成员,而不是返回值。在函数名称后添加parens:

let newPoint = returnTwoValues().pointReturned