swift集合提供了很多遍历的函数用来对元素进行访问及操作,并大量应用了闭包。
重点需要了解的函数有:
forEach、filter、map、reduce
forEach:循环遍历集合中的元素,相当于for-in 快速遍历
let values = [5, 3, 2, 3,1]
values.forEach {
print("element is ($0)")
}
filter:/*
函数原型:
func filter(_ isIncluded: (Element) -> Bool) -> [Element]
按照规则过滤原数组
*/
var values = [1.5, 10, 4.88, 3.2, 8]
let res = values.filter {
return $0 > 4
}
//res 是values数组里 所有大于4 的元素组成的新数组
map:/*
函数原型:
students.map(<#T##transform: (String) throws -> T##(String) throws -> T#>)
数组映射
*/
let input = ["0", "12", "name", "hi", "3"]
let number = input.map {
Int($0) //将元素转换为Int型
}
//注意类型转换可能失败,所以返回的是可选型
//[Optional(0), Optional(12), nil, nil, Optional(3)]
/*
另外一个高度近似的函数
flatMap
隐含了两种操作
1.解包
2.展开并合并
*/
let flatNumber = input.flatMap() {
Int($0)
}
//[0, 12, 3]
reduce:
let numbers = [1, 2, 3, 4]
let numberSum = numbers.reduce(0, { x, y in
x + y
})
// numberSum == 10
网友评论