【问题标题】:How do I read this Swift syntax? [duplicate]我如何阅读这个 Swift 语法? [复制]
【发布时间】:2017-04-20 16:41:02
【问题描述】:

我正在使用Vapor,第一件事是使用 get 方法,如下所示:

drop.get("hello") { request in
    return "Hello, world!"
}

现在我的理解是闭包就像类型函数的变量。正确的?在这里,我看到我们在 Droplet 类的实例上调用了一个方法 get,称为 drop 并传入一个字符串。

在 get 方法体中调用/传递闭包是怎么回事?我该如何阅读?

【问题讨论】:

    标签: swift vapor


    【解决方案1】:

    这称为尾随闭包语法。如果函数的最后一个参数是闭包,则可以将它放在紧跟在前面参数周围的右括号之后的花括号中。

    这里的get 方法有两个参数:一个String 和一个带有(Request) -> () 等签名的闭包

    https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html#//apple_ref/doc/uid/TP40014097-CH11-ID102

    您还会看到 only 参数是闭包的情况,例如数组上的 map() 方法。在这些情况下,括号可以完全省略,闭包写在紧跟函数名的花括号中,例如:

    let lowerCasedWords = arrayOfWords.map{ $0.lowercased() }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多