object forLearn {
def main(args: Array[String]): Unit = {
i为1到10,不可更改
for (i <- 1 to 10 if i % 2 == 0) {
println(i)
}
i为1到9,不可更改
for (i <- 1 until 10 ) {
i = i+1 错误,i为val 不可修改
if (i % 2 == 0)
println(i)
}
//if i % 2 == 0 作为哨兵,yield 可以回填for的返回值
val b = for (i <- 1 to 10 if i % 2 == 0) yield i+1
println(b)
b为2,4,6,8,10
}
}
梗1 : for循环中to是可以取到的值,而until是无法取到的值。
梗2:if可以写到for里面作为哨兵,当if条件不成立的时候,跳过本次循环
梗3:利用yield可以向for的返回值回填数据,返回结果是一个vector
梗4:游标是val类型,试图更改值的操作无法通过编译。