swift sorted 排序函数

swift 提供了便捷的快速排序数组、字典的函数 sorted( )
所有操作都在 swift 3.0 下完成

1. 数组排序

e.g. 给一个顺序杂乱的数组升序或降序排列其中的元素

let array = [6, 4, 5, 3, 1, 0, 2]

> 降序

array.sorted { (s1, s2) -> Bool in
    return s1 > s2
}

> 升序

array.sorted { (s1, s2) -> Bool in
    return s1 < s2
}

在 swift 中还可以通过简写的形式来书写升序降序
$0 来表示闭包的第一个参数,$1 来表示第二个,以此类推,in 也可以省略

array.sorted{$0 > $1}
array.sorted{$0 < $1}

// 还可以直接省略参数
// 升序
array.sorted(by: <)
// 降序
array.sorted(by: >)

2. 字典排序

let dict = ["1": "a", "3": "c", "2": "b", "5": "e", "4": "d", "6": "f"]

> 根据 key 排序

str.0str.1 的意思是:元组 **(key: String, value: String) 第0个是 key,第一个是 value **
从 **sorted **的函数定义可以看出来

dict.sorted { (<#(key: String, value: String)#>, <#(key: String, value: String)#>) -> Bool in
    <#code#>
}
let result3 = dict.sorted { (str1, str2) -> Bool in
    return str1.0 < str2.0
}

> 根据 value 排序

let result4 = dict.sorted { (str1, str2) -> Bool in
    return str1.1 < str2.1
}

> 简化:与数组的简化类似

// 根据 key
dict.sorted{$0.0 < $1.0}
// 根据 value
dict.sorted{$0.1 < $1.1}

// 进一步省略参数
dict.sorted(by: <)
dict.sorted(by: >)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,792评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,839评论 18 399
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 3,875评论 0 6
  • 1.《中老年微信使用指南》,内容涵盖了微信功能、微信守则、微信群、微信感悟四大部分,赶紧来看一看吧! 《中老年使用...
    Stephen潇雨阅读 2,134评论 0 0
  • 你我都只是一个过客,何必都那么认真?
    我叫安然你的名字是什么阅读 267评论 0 0