gpt4 book ai didi

Scala:在for循环中声明val,如果条件

转载 作者:行者123 更新时间:2023-12-04 00:21:40 25 4
gpt4 key购买 nike

我是 Scala 初学者并试图了解 val 在 Scala 中的工作原理。我读到 vals 不能修改。当我执行以下操作时:

for( line <- Source.fromFile(args(0)).getLines() ) {
val currentLine = line
println(currentLine)
}

currentLine 在每次迭代中都会更新,而我希望它用第一行初始化并保持到最后,或者至少给出某种重新初始化错误。为什么会这样? val 是否在每次迭代中创建和销毁?我的第二个问题:如果在以下代码中,我想在外部使用 x 。
if( some condition is satisfied) val x = 2 else val x = 3

截至目前,我收到“简单表达式的非法开始”错误。有没有办法在外面使用 x ?

最佳答案

  • 是的,val在每次迭代中创建和销毁。
  • val x = if(condition) 2 else 3会做你想做的。

  • 编辑:您可以将 2. 重写为 if(conditon) {val x = 2} else {val x = 3} (使其编译)但这不会做任何事情,因为 if 不返回任何内容并且该变量不能在 if 之外使用

    关于Scala:在for循环中声明val,如果条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21407133/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com