Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Parameters after opening bracket

I am doing my first steps in Vapor, the web framework for Swift.

The first piece of code that called my attention was this:

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

I don't understand the syntax here. I mean, I'm calling app.get() method, but I'm also defining some kind of function where request is a parameter. I know that this will result in a get method accessible by a /welcome URL and will return "Hello". What is not clear for me is how this piece of code works and how the compiler interprets it.

like image 534
Alberto Cruz Avatar asked Jul 25 '26 16:07

Alberto Cruz


1 Answers

This is called trailing closure syntax.

I give a nice rundown of the various syntactic sugars of closures in this answer.

The expanded version of this code would be:

app.get("welcome", { (request: Request) throws -> ResponseRepresentable in 
    return "Hello"
})
like image 122
Alexander Avatar answered Jul 28 '26 12:07

Alexander



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!