您的位置:首页 > 其它

Kotlin协程案例:序列生成器

2018-04-03 17:34 295 查看
一、使用Kotlin协程,写一个斐波拉契序列

package cn.kotliner.coroutine.sequence

import kotlin.coroutines.experimental.buildSequence

/**
* @author:wangdong
* @description:
*/

fun main(args: Array<String>) {
for (i in fibonacci){
println(i)
//打印的时候,调Next方法,next方法把我们刚刚设置给next的方法返回
//直到循环厕所超过100的时候,跳出
if (i > 100)break
}
}

/**
* 基于协程API构建
* 斐波拉契
* 这个玩意是无穷尽的
*/
val fibonacci = buildSequence {
yield(1)
//调这个值的时候,先把1赋给next
var cur = 1
var next = 1

while (true){
yield(next)
//协程被挂起
val tmp = cur + next
cur = next
next = tmp
}
}


如果不是很理解斐波拉契序列的话,请参考下以下的维基百科:

斐波拉契序列
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息