I was re-reading Apple’s documentation about closure and I tough it couldn’t hurt anybody to share this little resume about closure syntax.
Here’s a simple closure :
1 |
reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool in return s1 > s2 }) |
Here’s the same but simpler :
1 |
reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool in return s1 > s2 } ) |
Hmm even simpler :
1 |
reversedNames = names.sorted(by: { s1, s2 in return s1 > s2 } ) |
Huh ?!? Even more :
1 |
reversedNames = names.sorted(by: { s1, s2 in s1 > s2 } ) |
WTF ?!?! Really ?! (but yeah it works) :
1 |
reversedNames = names.sorted(by: { $0 > $1 } ) |
And finally (unreadable but still) :
1 |
reversedNames = names.sorted(by: >) |
From The Swift Programming Language (Swift 3.0.1)
Cheers,
MAB