我如何阅读这个Swift语法?

时间:2016-12-06 05:48:48

标签: swift vapor

我正在使用Vapor,其中一个首先使用的get方法如下所示:

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

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

在get方法体内调用/传递的闭包是什么?我怎么读这个?

1 个答案:

答案 0 :(得分:3)

这称为尾随闭包语法。如果函数的最后一个参数是闭包,则可以在前一个参数周围的右括号之后立即将其置于花括号中。

这里的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() }