我正在使用Vapor,其中一个首先使用的get方法如下所示:
drop.get("hello") { request in
return "Hello, world!"
}
现在我的理解是闭包就像类型函数的变量一样。正确?在这里,我看到我们在名为drop的get
类的实例上调用方法Droplet
并传入一个字符串。
在get方法体内调用/传递的闭包是什么?我怎么读这个?
答案 0 :(得分:3)
这称为尾随闭包语法。如果函数的最后一个参数是闭包,则可以在前一个参数周围的右括号之后立即将其置于花括号中。
这里的get
方法有两个参数:一个String
和一个带有一些签名的闭包,如(Request) -> ()
您还会看到 only 参数是闭包的情况,例如数组上的map()
方法。在这些情况下,括号可以完全省略,闭包是在函数名后紧跟大括号写的,例如:
let lowerCasedWords = arrayOfWords.map{ $0.lowercased() }