我是一个scala初学者,并试图了解val如何在Scala中工作.我读到vals无法修改.当我执行以下操作时:
for( line <- Source.fromFile(args(0)).getLines() ) {
val currentLine = line
println(currentLine)
}
Run Code Online (Sandbox Code Playgroud)
currentLine在每次迭代中都会更新,而我希望它可以用第一行初始化并保持到最后,或者至少给出某种重新初始化错误.为什么会这样?是否在每次迭代中创建并销毁了val?我的第二个问题:如果在下面的代码中我想使用x outside.
if( some condition is satisfied) val x = 2 else val x = 3
Run Code Online (Sandbox Code Playgroud)
截至目前,我正在收到"非法表达简单表达"错误.有没有办法在外面使用x?
Kig*_*gyo 19
是的,val每次迭代都会创建和销毁.
val x = if(condition) 2 else 3 会做你想做的.
编辑:您可以重写2. if(conditon) {val x = 2} else {val x = 3}(以使其编译),但这不会做任何事情,因为if不返回任何内容,并且该变量不能在if
| 归档时间: |
|
| 查看次数: |
10195 次 |
| 最近记录: |