当前位置:   article > 正文

Kotlin generateSequence()序列构造函数

generatesequence

一般针对某个序列,你可能会定义一个只要序列有新值产生就被调用一下的函数,这样的函数叫迭代器函数。

generateSequence  函数接受一个初始种子值作为序列的起步值,在用 generateSequence 定义的序列上调用一个函数时,generateSequence  函数会调用你指定的迭代器函数,决定下一个要生产的值。

1.我们先来个运算扩展函数

  1. // 这方法为Int的扩展函数
  2. fun Int.isPrime():Boolean{
  3. //从2为起始数到本身的循环
  4. (2 until this).map {
  5. //这里拿本身与它和2之间的数相除
  6. if (this % it==0){
  7. return false
  8. }
  9. }
  10. return true
  11. }

generateSequence  用法

  1. fun main() {
  2. //正常写法
  3. //1到 5000之间 取出了它本身除以从2到它本身之间不能整除的数 只取1000
  4. val take = (1..5000).toList().filter {
  5. it.isPrime()
  6. }.take(1000)
  7. print(take)
  8. //generateSequence函数写法
  9. //参数 seed是指从哪里开始 表达式每次加一就是初始值加一
  10. val take1 = generateSequence(2) { value -> value + 1 }
  11. //取出符合条件的数字
  12. .filter { it.isPrime()}.
  13. // take 控制 filter里的条件在为true的情况下要运行多少次
  14. take(1000)
  15. print(take1.toList().size)
  16. }

     

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

闽ICP备14008679号