This question already has an answer here:
- Parameters after opening bracket 1 answer
I am using Vapor and one of the first thing is to use get method which looks like following:
drop.get("hello") { request in
return "Hello, world!"
}
Now my understanding was that the closures are like variable of type functions. Correct? Here I see we call a method get
on an instance of Droplet
class called drop and pass in a string.
What is with the closure being called/passed inside the get method body? How do I read this?
This is called trailing closure syntax. If the last parameter of a function is a closure, it can be placed in curly braces immediately following a closing parenthesis around the previous parameters.
The get
method here takes two parameters: a String
and a closure with some signature like (Request) -> ()
You'll also see cases where the only parameter is a closure, like the map()
method on an array. In these situations, the parentheses can be omitted entirely and the closure is written in curly braces immediately following the function name, e.g.:
let lowerCasedWords = arrayOfWords.map{ $0.lowercased() }
来源:https://stackoverflow.com/questions/40988638/how-do-i-read-this-swift-syntax