在Swift 3中我可以在尾随闭包中使用特定于字符串的实现吗?
let names = ["Ekram","Galib","Hasan","Rangon","Asif","Saikat"]
let reversedName = names.sorted{ > }
答案 0 :(得分:3)
为什么将>
包装在尾随闭包中? sorted(by:)
接受一个函数,>
已匹配其签名。所以就这样做:
let reversedName = names.sorted(by: >)
只是陈述可能不明显的事情:
a)Swift中的运算符像常规函数一样工作,例如在这种情况下,像func > <T>(lhs: T, rhs: T) -> Bool
b)在Swift函数中命名为闭包,如果API需要闭包(如(lhs: T, rhs: T) -> Bool
),您还可以使用命名函数,如>
或func compareTheTwo(a: String, b: String) -> Bool
答案 1 :(得分:0)
是的,但你必须指定你实际比较的是哪个参数:
let reversedNames = names.sorted { $0 > $1 }