想一想“按多个标准排序”是什么意思。这意味着首先通过一个条件比较两个对象。然后,如果这些条件相同,则领带将被下一个条件破坏,依此类推,直到获得所需的排序。
let sortedContacts = contacts.sort { if $0.lastName != $1.lastName { // first, compare by last names return $0.lastName < $1.lastName } else { // All other fields are tied, break ties by last name return $0.firstName < $1.firstName }}您在这里看到的是
Sequence.sorted(by:)method,它参考提供的闭包来确定元素的比较方式。
如果您的排序将在许多地方使用,最好使您的类型符合
Comparable
协议。这样,您可以使用
Sequence.sorted()method,该方法会咨询您的
Comparable.<(_:_:)运算符实现,以确定元素之间的比较方式。这样,您可以对任何s进行排序
Sequence,
Contact而不必重复排序代码。



