为什么函数在swift中有多个返回类型?

问题描述 投票:2回答:1

我注意到这个函数有一个唯一的返回类型

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
}
swift
1个回答
1
投票

这个函数实际上只返回另一个函数,其中Int作为参数和返回类型。这样做:

(Int) -> Int

在这种情况下,此函数返回一个子函数。


那么当你需要得到子函数的结果时,就这样做吧

chooseStepFunction(backward: true)(1)  /* returns 0 */
chooseStepFunction(backward: false)(1) /* returns 2 */
© www.soinside.com 2019 - 2024. All rights reserved.