Kotlin学习手记,flutter开发实战详解pdf

 .flatMap {

    (0 until it).asSequence()

}

.joinToString().let(::println)

val newList = list.flatMap {

 ArrayList<String>(it)

}




*   **sequence**的概念  

    sequence类似java8里面的stream流,或者RxJava里面的流概念



val list = listOf(1, 2, 3, 4)

list.asSequence()

    .filter {

        println("filter: $it")

        it % 2 == 0

    }.map {

        println("map: $it")

        it * 2 + 1

    }.forEach {

        println("forEach: $it")

    } 



上面代码`list`调用`asSequence`后每个元素会依次调用`filter`和`map`, 不加`asSequence`每个元素会先调用`filter`再调用`map`。  

加`asSequence`最后不加`forEach`的话,不会有输出,不加`asSequence`的话,去掉`forEach`也会有输出。即加上`asSequence`变成了流一样。



`asSequence`被称为懒序列,使用`asSequence`性能会优化一些,因为每个元素只需要走一遍每个操作,而不是每个操作中将每个元素走一遍。



![在这里插入图片描述](https://img-blog.csdnimg.cn/20201217231349576.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x5YWJjMTIzNDU2,size_16,color_FFFFFF,t_70#pic_center)  

**sum**



val list = listOf(1, 2, 3, 4)

val s = list.sum()

println(“list.sum() $s”)//10




![在这里插入图片描述](https://img-blog.csdnimg.cn/20201217231728934.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x5YWJjMTIzNDU2,size_16,color_FFFFFF,t_70#pic_center)



val list = listOf(1, 2, 3, 4)

//acc是上次的计算结果,初始值为StringBuffer(),返回值跟初始值类型一样

val foldStrBuf = list.fold(StringBuffer()){

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值