我注意到这个函数有一个唯一的返回类型
func chooseStepFunction(backward: Bool) -> (Int) -> Int {
func stepForward(input: Int) -> Int { return input + 1 }
func stepBackward(input: Int) -> Int { return input - 1 }
return backward ? stepBackward : stepForward
}
这个函数实际上只返回另一个函数,其中Int
作为参数和返回类型。这样做:
(Int) -> Int
在这种情况下,此函数返回一个子函数。
那么当你需要得到子函数的结果时,就这样做吧
chooseStepFunction(backward: true)(1) /* returns 0 */
chooseStepFunction(backward: false)(1) /* returns 2 */