//针对 数组 字典 集合
//map简写法
let values = [2.0,3.0,5.0,7.0]
let squares = values.map{$0 * $0}
print(squares)//[4.0, 9.0, 25.0, 49.0]
//map正常写法
let squares2 = values.map({
(value: Double) -> Double in
return value * value
})
print(squares2)//[4.0, 9.0, 25.0, 49.0]
//filter
let digits = [1, 4, 10, 15]
let even = digits.filter { $0 % 2 == 0 }
print(even)//[4, 10]
let even1 = digits.filter{
(number) -> Bool in
return number % 2 == 0
}
print(even1)//[4, 10]
//reduce
let reduceSouce = [2,3,5,7]
let total = reduceSouce.reduce(10, +)
print(total)//27
let codes = ["abc", "def", "ghi"]
let total1 = codes.reduce("", +)
print(total1)//abcdefghi
//value1 代表初始值 "===="以及后面拼接后的值
//value2 代表string 数组里面的元素
let string = ["wo","de","who"]
let total2 = string.reduce("===="){
value1,value2 in "\(value1),\(value2)"
}
print(total2)//====,wo,de,who
//flatMap 合并数组 集合
let collection = [[2,4,5],["a","b"],[9,5]]
let resultCollection = collection.flatMap{$0}
print(resultCollection)//[2, 4, 5, "a", "b", 9, 5]
//flatMap还“知道”可选值的概念,它将会把集合中的nil元素移除掉
let people: [String?] = ["Tom", nil, "Peter", nil, "Harry"]
let valid = people.flatMap { $0 }
// ["Tom", "Peter", "Harry"]
//https://www.jianshu.com/p/1b4a8b4517bd
swift 高阶函数 map filter reduce
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 试着去使用 map 和 reduce,但这不是强制的。当合适的时候,使用 for 循环也无可厚非。高阶函数的意义是...
- Swift是一门面向协议的语言,在使用Swift时我们已经充分享受到了面向协议编程带给我们的便利,但是Swift相...
- Swift是一门面向协议的语言,且对函数式编程提供了很好的支持,其中Swift提供了map,filter,redu...
- 在swift中,对诸如Array, Dictionary集合类型使用map, filter, reduce进行操作...