代码实现
object Lambda {
def main(args: Array[String]): Unit = {
def myWhile(condition: => Boolean)(op: => Unit): Unit = {
if (condition) {
op
myWhile(condition)(op)
}
}
var a = 1
myWhile(a <= 4) {
println(a)
a += 1
}
}
}
解读
首先我们定义一个myWhile函数,它的两个参数分别是返回值为Boolean类型、Unit类型(无返回值)的代码块,该函数没有返回值
如果传入的第一个代码块condition的返回值为true则执行传入的第二个代码块op,接着再次以参数condition、op执行myWhile函数(递归),直到多次op操作后condition不再为true,终止循环,否则死循环