It is possible to omit the type for the closure's parameter and return type. The following lines show a simplified version of the previously shown code that generates the same result. Note that the closure code is really simplified and doesn't even include the return statement because it uses an implicit return. Swift evaluates the code we write after the in
keyword and returns its evaluation as if we included the return statement before the expression. Swift infers the return type:
public func filterNumbersByCondition(condition: Int -> Bool) -> [Int] { return numbersList.filter({ (number) in condition(number) }) }
We can go a step further and use the argument shorthand notation. This way, the closure omits the type for the parameters and its return type, takes advantage of implicit returns, and also uses the argument shorthand notation. The dollar sign followed by the argument number identifies each of the arguments for...