TRPL猜数字游戏。
我将不使用循环就编写kotlin。
在kotlin中,没有任何选择或选择。
只有try-catch可以进行错误处理。
我想返回成功和失败以及返回值,所以我暂时不使用Pair。
有很多科特林。
我认为这里有发电机。
但是,"协程"功能是实验性
毕竟,很容易产生一个具有产量的序列。
我想知道它不久是否会生锈。
添加使用kotlin.coroutines.experimental.buildSequence创建无限列表。
从带有协程的命名空间中可以看出,协程不是专用于生成器的,协程有很多,生成器是其中的一部分。
我还没有看到其他功能。可能是。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import java.util.Random import kotlin.coroutines.experimental.buildSequence fun main(args:Array<String>){ val secret_number = Random().nextInt(99) + 0 println("秘密の数字は次の通り:${secret_number}") println("数をあててごらん") println("ほら予想を入力してね") buildSequence{ while(true){ yield(readLine()) } }.map{ s->try{ Pair(true,Integer.parseInt(s)) }catch(e:Exception){ Pair(false,0) } }.filter{ p->p.first }.map{ p->p.second }.map{ i-> when{ i==secret_number -> {println("正解");i} i<secret_number -> {println("小さ過ぎる");i} else -> {println("大き過ぎる");i} } }.filter{ i->i==secret_number }.first() } |
我以为是我写的,但是如果有一个过程可能在与map或filter链接时导致错误,则它可能是一个,也可能不是,并且不会出现生锈的情况。
对于scala,rust和kotlin,我认为scala是最容易编写的。
斯卡拉