Scala 内置控制结构详解
1. 使用 val 而非 var 的优势
使用 val
而非 var
的第二个优势在于它更有助于等式推理。假设表达式没有副作用,引入的变量等于计算它的表达式。所以,每当你要写变量名时,都可以直接写表达式。例如:
val filename = if (!args.isEmpty) args(0) else "default.txt"
println(filename)
// 也可以写成
println(if (!args.isEmpty) args(0) else "default.txt")
建议尽可能使用 val
,它能让代码更易读,也更易于重构。
2. While 循环
Scala 的 while
循环和其他语言中的表现一致。它有一个条件和一个循环体,只要条件为真,循环体就会不断执行。以下是一个计算最大公约数的示例:
def gcdLoop(x: Long, y: Long): Long = {
var a = x
var b = y
while (a != 0) {
val temp = a
a = b % a
b = temp
}
b
}
Scala 还有 do-while
循环,它和 while </