当前位置:  开发笔记 > IOS > 正文

何时从Swift中的另一个函数返回一个函数

如何解决《何时从Swift中的另一个函数返回一个函数》经验,为你挑选了1个好方法。

你想要从Swift中的函数返回函数的最常见情况是什么?

在下面的代码中我返回一个函数,但我没有真正看到目的,因为我返回的函数是在返回它的函数内部.我感到困惑的原因是因为我们只用一个函数就能完成同样的事情.

func person () -> ((String, Int) -> String) {

  func info(name: String, age: Int) -> (String) {
    return "\(name) is \(age) old"
  }

  return info
}


let nathan = person()
nathan("Nathan", 3)

print(nathan("Nathan", 3))

有人可以指出你想要返回一个函数的常见情况,并可能用一个更好的例子说明它吗?

我想理解这一点,因为这对于编程而言通常不仅仅是Swift(我认为).



1> Grimxn..:

一个典型的例子是计算器程序,例如:

func operatorForString(str: String) -> ((Float, Float) -> Float)? {
    if str == "+" {
        return (+) // brackets required to clarify that we mean the function
    } else if str == "-" {
        return (-)
    } else if str == "*" {
        return (*)
    } else if str == "/" {
        return (/)
    } else if str == "**" {
        return pow // No brackets required here
    } else {
        return nil
    }
}

if let op = operatorForString("-") {
    let result = op(1, 2) // -1
}

这是相当做作的,但它简单地说明了原理......

作为"向读者练习"尝试将其作为Dictionary查找,而不是重复ifs :)

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有