美文网首页
Swift-函数返回函数

Swift-函数返回函数

作者: DavidShawn | 来源:发表于2020-10-29 20:01 被阅读0次

    在官方文档中,通常喜欢在某个概念中加入不必要的花花绕。比如,为了说明函数中返回函数,通常会举个例子,而这个例子同时有某种小算法在里面,能做个加法,取个最大值什么的。这么做最大的作用就是说明作者很牛叉,功底很深厚(小人之心了,不好意思)。但是往往给新手增加了负担,影响理解。我来试图简化这种介绍模式,同时,也试试能不能给自己写明白。

    在普通函数中,函数通常需要返回某种值。

    举个最简单的例子:

    func outFunc1()  -> String {

        return ("这是一个普通的函数。")

    }

    print(outFunc1())

    >>这是一个普通的函数。

    上面这段代码很好理解,我们调用outFunc,加上(),即outFunc(),函数就返回了一串字符,然后将之打印。

    然而,更高级一点的用法是,函数也可以返回一个函数。

    请看下面的代码。

    func outFunc2() -> (() ->String) {

        func innerFunc() ->String{

            return ("这是一个返回的内部函数。")

        }

        return innerFunc

    }

    print(outFunc2()())

    >>这是一个返回的内部函数。

    outFunc2 与之前的outFunc1结构是一样的,都是返回某种值,不同的是,我在outFunc2中替换了一个innerFunc。返回值的时候,也返回这个innerFunc。这样,我们在调用outFunc2时,就得到了内部函数innerFunc。

    解析这里的逻辑。首先,outFunc2(),得到的其实是return出来的innerFunc。想要继续执行这个innerFunc,就再加个(),即outFunc2()()。

    总结,基本思想就是将内部的函数看成一个整体。

    同样重要的是,要及时意识到,这里的整体是个函数,能完成某种功能。

    相关文章

      网友评论

          本文标题:Swift-函数返回函数

          本文链接:https://www.haomeiwen.com/subject/heslvktx.html