swift 函数嵌套

swift 函数嵌套,第1张

概述在swift 里面这个函数嵌套是我理解起来有点稍微难受的知识点,记录下 还是用那个最经典的例子来看一下 func chooseStepFunction(backwards: Bool) -> (Int) -> Int { func stepForward(input: Int) -> Int { return input + 1 } func stepBackward(i

在swift 里面这个函数嵌套是我理解起来有点稍微难受的知识点,记录下

还是用那个最经典的例子来看一下

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}var currentValue = -4let moveNearerToZero = chooseStepFunction(backwards: currentValue > 0)while currentValue != 0 {    print("\(currentValue)... ")    currentValue = moveNearerToZero(currentValue)}

一般函数看起来如果有返回值的时候,格式是这个样子的

func 方法名字(参数)-> 返回类型 {里面的一些运算}

而这个嵌套的函数在返回类型里是这样子的 (Int)-> Int 抽出来不难理解,这个就是(参数)-> 返回类型 ,这就是个发育不良的函数格式,在程序里面呢,要把它看做一个整体理解。我只需知道,通过最外面的函数返回的东西还是个函数。

就像我们上面的例子一样

let moveNearerToZero = chooseStepFunction(backwards: currentValue > 0)
这个moveNearerToZero就是个函数。

往里面第一个函数choose里面看,发现不简单,竟然又有两个函数,都是完全形态,有参数,有返回值,放在外面也可以独立生活。我们不用管,只需要外面的返回函数类型,和里面要用的一直就好了。其实他们就是一个,往下看就一目了然了。

 return backwards ? stepBackward : stepForward
返回的是存在函数里的两个函数名,条件满足哪个就返回哪个,上面的moveNearerToZero接收了,再运行就是里面的函数了

多个嵌套的话也是一样的流程

总结

以上是内存溢出为你收集整理的swift 函数嵌套全部内容,希望文章能够帮你解决swift 函数嵌套所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1066843.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存