当前位置:   article > 正文

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

flutter开发实战详解 pdf
 .flatMap {

    (0 until it).asSequence()

}

.joinToString().let(::println)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

val newList = list.flatMap {

 ArrayList<String>(it)
  • 1

}




*   **sequence**的概念  

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



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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")

    } 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19



上面代码`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**



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

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)



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/512628
推荐阅读
相关标签
  

闽ICP备14008679号