您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Swift-使用多个条件对对象数组进行排序

Swift-使用多个条件对对象数组进行排序

想一想“按多个标准排序”是什么意思。这意味着首先通过一个条件比较两个对象。然后,如果这些条件相同,则领带将被下一个条件破坏,依此类推,直到获得所需的排序。

let sortedContacts = contacts.sort {
    if $0.lastName != $1.lastName { // first, compare by last names
        return $0.lastName < $1.lastName
    }
    /*  last names are the same, break ties by foo
    else if $0.foo != $1.foo {
        return $0.foo < $1.foo
    }
    ... repeat for all other fields in the sorting
    */
    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进行排序SequenceContact而不必重复排序代码

Swift 2022/1/1 18:17:51 有531人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶