我已经查看了Apple指南swift和具有多个返回值的函数,但仍然不确定。可能这只是一个sytanx问题。
我有一个函数,它返回两个值,例如(CGPoint,CGVector)。
func returnTwoValues() -> (pointReturned: CGPoint, vectorReturned: CGVector) {
return ...
}
我希望创建一个let,它只是其中一个值的结果。即
let newPoint = returnTwoValues.pointReturned
但这不起作用,我该怎么做呢?
答案 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