【问题标题】:Parameters after opening bracket打开括号后的参数
【发布时间】:2017-03-28 07:32:47
【问题描述】:

我正在使用 Swift 的 Web 框架 Vapor 迈出第一步。

引起我注意的第一段代码是这样的:

app.get("welcome") { request in 
    return "Hello"
}

我不明白这里的语法。我的意思是,我正在调用app.get() 方法,但我也在定义某种函数,其中请求是一个参数。我知道这将导致/welcome URL 可以访问get 方法,并将返回“Hello”。我不清楚的是这段代码是如何工作的,以及编译器是如何解释它的。

【问题讨论】:

  • CMD+点击.get,你会看到方法声明,很有启发性。 :) 关键字:回调(完成处理程序)和尾随闭包。
  • 哦。没有 Xcode,所以... Vim? ;) 好的,您不会看到方法声明,但您仍然可以查看这些关键字。看看this answer,它显示了一个类似的尾随闭包示例。
  • 谢谢!我看到它是一个完成处理程序。所以它只是一个回调。非常感谢!

标签: swift parameters vapor


【解决方案1】:

这叫trailing closure syntax

我在this answer 中对闭包的各种语法糖进行了很好的概述。

这段代码的扩展版本是:

app.get("welcome", { (request: Request) throws -> ResponseRepresentable in 
    return "Hello"
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-16
    • 2020-03-23
    • 2022-06-22
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    相关资源
    最近更新 更多