文档章节

swift map filter reduce flatMap compactMap 的用法

赵大财
 赵大财
发布于 2018/04/19 16:56
字数 177
阅读 68
收藏 0

 

    struct Person {
        var age: Int
        var name: String
    }
    
    func getAges(people: [Person]) -> [Int] {
        return people.compactMap { $0.age }
    }
 let r1 = 0...5
        let r2 = [0,1,2,3,4,5]
        print(r1,r2)
        print("map的用法:", r1.map{$0*2} , r2.map{$0*2})
        print("filter的用法:",r1.filter{$0>2})
        print("reduce的用法:",r1.reduce(50,{$0 + $1}))
        let numbersCompound = [[1,2,3],[4,5,6]];
        let flatRes = numbersCompound.flatMap{ $0.map{ $0} }
        print("flatMap的用法:",flatRes)
        let possibleNumbers = ["1", "2", "three", "///4///", "5"]
        let compactMapRes: [Int] = possibleNumbers.compactMap { str in Int(str) }
        print("compactMap的用法:",compactMapRes)
        print( "compactMap的高级用法:",getAges(people: [Person(age: 10, name: "100"),Person(age: 100, name: "100"),Person(age: 1000, name: "100")]))

        let rigou = [1, 2, 3, nil, nil, 4, 5] //神奇的空值过滤
        let rigouNewArr = rigou.compactMap { $0 }
        print(rigouNewArr)
        
        let numbers = [1, 2, 3, 4]
        let mapped = numbers.map {Array(repeating: $0, count: $0) }
        let flatMapped = numbers.flatMap { Array(repeating: $0, count: $0) }
        print(mapped)
        print(flatMapped)
        

 

© 著作权归作者所有

赵大财
粉丝 22
博文 162
码字总数 38743
作品 0
长沙
私信 提问
swift, Array的高阶函数:filter 和 reduce

1.filter filter: 过滤,可以对数组中的元素按照某种规则进行一次过滤。 函数声明: public func filter(_ isIncluded: (Element) throws -> Bool) rethrows -> [Element] 从定义上看,filte...

like_sunflower
01/05
0
0
swift, Array的高阶函数:flatMap 和 compactMap

flatMap: 对数组的每一个元素做一次处理,返回处理后的数组。 与map的区别是: 返回后的数组中不存在nil, 同时也会把Optional解包。 函数声明: @available(swift, deprecated: 4.1, renam...

小曼Study
01/05
0
0
swift 数组高阶使用(二)

swift 数组高阶使用(二) 这次主要讲解swift中map、flatmap、filter、reduce对数组的操作,你会发现,你的数组变得非常简单,上代码: map 被一个数组调用,并且可以接受一个闭包,返回原数...

樱黯雨
2016/07/02
12
0
Swift中的高阶函数:sorted, map, reduce, forEach, flatMap, filter

高阶函数(Higher-order function) 在数学和计算机科学中,高阶函数是至少满足下列一个条件的函数: 接受一个或多个函数作为输入 输出一个函数 函数式编程中,高阶函数比较常见了。 注:, ,...

Andy_Ron
2018/10/15
0
0
java8-Collections and Streams

stream和集合的区别是什么? 1.在计算的时候处理不同, 2.every element should be computed in the memory and then to be part of collections stream Stream apis filter with a predica......

writeademo
2018/06/25
18
0

没有更多内容

加载失败,请刷新页面

加载更多

java发送html模板的高逼格邮件

最近做了一个监测k8s服务pod水平伸缩发送邮件的功能(当pod的cpu/内存达到指定阈值后会水平扩展出多个pod、或者指定时间内pod数应扩展到指定数量),一开始写了个格式很low的邮件,像下面这样...

码农实战
21分钟前
7
0
php-fpm配置文件详解/MariaDB密码重置、慢查询日志

来源:https://blog.csdn.net/Powerful_Fy php-fpm主配置文件路径:/usr/local/php-fpm/etc/php-fpm.conf #位于安装php安装目录下的etc/目录中,该文件中最后一行将配置文件指向:include=/...

asnfuy
26分钟前
7
0
川普给埃尔多安和内堪尼亚胡的信

任性 https://twitter.com/netanyahu/status/1186647558401253377 https://edition.cnn.com/2019/10/16/politics/trump-erdogan-letter/index.htm...

Iridium
47分钟前
12
0
golang-mysql-原生

db.go package mainimport ("database/sql""time"_ "github.com/go-sql-driver/mysql")var (db *sql.DBdsn = "root:123456@tcp(127.0.0.1:3306)/test?charset=u......

李琼涛
今天
5
0
编程作业20191021092341

1编写一个程序,把用分钟表示的时间转换成用小时和分钟表示的时 间。使用#define或const创建一个表示60的符号常量或const变量。通过while 循环让用户重复输入值,直到用户输入小于或等于0的值...

1李嘉焘1
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部