上QQ阅读APP看书,第一时间看更新
Alternative closure syntax
There is a way to automatically name the arguments in a closure, leading to a slightly more concise syntax. The preceding closure could have been written as follows:
let myIntOp: (Int, Int) -> Int = { return $0 * $1 }
So $0, $1... are symbols for the arguments passed to a closure.
In the case of such one-liners, we can even omit the return keyword:
let myIntOp: (Int, Int) -> Int = { $0 * $1 }
This may look odd at first, but you get used to it pretty quickly.