- sorted 排序函数
let array = [1,2,3,4,5,6]
do {
// 降序排序
let arr1 = array.sorted { (a, b) -> Bool in
return a > b
}
print(arr1)
// 升序排序
let arr2 = arr1.sorted { (a, b) -> Bool in
return a < b
}
print(arr2)
// sorted()升序排序
print(arr1.sorted())
}
- map遍历集合元素
// 遍历数组,每个元素组成元组类型,遍历执行结果返回泛型T,并组合成新的数组mapArr1
let mapArr1 = array.map { (<#Int#>) -> T in
<#code#>
}
// 遍历字典, 每个键值对组成元组类型,遍历执行结果返回泛型T,并组合成新的数组mapArr2
let mapArr2 = dic.map { (<#(key: String, value: String)#>) -> T in
<#code#>
}
// 简洁写法,$0 $1 分别为元组的第一、二个元素
let mapArr3 = dic.map {
print("key : \($0), value : \($1)")
}
- filter过滤集合
// 过滤数组,遍历每个元素,返回符合要求的元素组成新数组
let newArr = array.filter { (<#Int#>) -> Bool in
<#code#>
}
// 过滤字典,遍历每个键值对,返回符合要求的键值对组成新字典
let newDic = dic.filter { (<#(key: String, value: String)#>) -> Bool in
<#code#>
}
- reduce 遍历集合,计算元素
// Result 计算结果容器,有初始值
// (<#Result#>, <#Int#>) 遍历元素元组,有容器和数组元素组成
// 遍历结束返回结果,返回类型由Result决定
let reduce = array.reduce(Result) { (<#Result#>, <#Int#>) -> Result in
<#code#>
}
// 与reduce数组类似
let reduce = dic.reduce(Result) { (<#Result#>, <#(key: String, value: String)#>) -> Result in
<#code#>
}
// 例:
let reduce = dic.reduce("reduce :") { (a, arg1) -> String in
let (key, value) = arg1
return a + key + value
}
print(reduce)
- reversed() 、enumerated()
do {
let array = [1,3,2,7,6,8,9,5]
// reversed 反向,让数组元素顺序颠倒
let reversedArr = array.reversed()
print("reversedArr = \(Array(reversedArr))")
let enumeratedArr = array.enumerated()
print("enumeratedArr = \(Array(enumeratedArr))")
// enumerated 获取数组的下标和下标对应元素组成的元组
for (n,value) in array.enumerated() {
print("array enumerated n = \(n) , value = \(value) ")
}
let dic = ["name":"Ares", "num":"25", "id":"1024"]
// 让字典元素反向,没有实际意义
let reversedDic:Array<Any> = dic.reversed()
print("dic = \(dic) \n reversedDic = \(reversedDic) ")
for (n, value) in dic.enumerated() {
print(value.key)
print("dic enumerated n = \(n), value = \(value)")
}
}
网友评论