swift 之嵌套的理解 func chooseStepFunction(backwards: Bool) -> (Int) -> Int

http://blog.csdn.net/lzx_322/article/details/28861199

swift 函数使用前面需要添加 func 有返回值需要使用-> 后面添加返回类型 ,很容易理解,在看英文版的pdf文档时候看到嵌套函数的返回值,刚开始没有太明白,仔细思考了一会还是很容易理解的:

例如:func stepBackward(input: Int) -> Int {
return input - 1
}

返回值是int型的。

func chooseStepFunction(backwards: Bool) -> (Int) -> Int {
func stepForward(input: Int) -> Int { return input + 1 }
func stepBackward(input: Int) -> Int { return input - 1 }
return backwards ? stepBackward : stepForward
}

这里的  chooseStepFunction 返回值类型是(Int) -> Int,看函数中的return 是函数 stepBackward or stepForward,这两个函数的类型正是(Int) -> Int。最终返回的数值是还是int型。

再例如:

func testFunction(a:int,b:int)->(int,int)->int{

func getFunction(a:int,b:int)->int{

return a-b

}

return getFunction

}

外面的函数返回的是(int,int)->int,恰好返回是嵌套里面面的函数,此函数最终返回的是嵌套里面函数的返回值。这是我对嵌套返回的理解,表述不是很清晰,希望对大家有所帮助,不足之处欢迎指出。

版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/xuejinhui/p/4618152.html