【发布时间】:2017-04-08 02:27:18
【问题描述】:
下面的代码演示了两种求和值的方法,如果值达到 5,则终止条件:
object ob extends App {
def withoutRecursion = {
var currentTotal = 0.0;
while(5 > currentTotal){
currentTotal = currentTotal + scala.util.Random.nextFloat
println(currentTotal);
}
}
def withRecursion = {
var currentTotal = 0.0;
def whileLoop(cond : =>Boolean)(block : =>Unit) : Unit =
if(cond) {
block
whileLoop(cond)(block)
}
whileLoop(5 > currentTotal) {
currentTotal = currentTotal + scala.util.Random.nextFloat
println(currentTotal);
}
}
}
在这种情况下,withRecursion 方法是用函数式编程风格替换 while 循环的惯用方法吗?
【问题讨论】:
标签: scala functional-programming