有没有办法让参数变为var而不是val?

aio*_*obe 9 scala command-line-arguments method-parameters

在Java中调试命令行参数处理时,我习惯这样做

args = new String[] { "some", "new", "arguments" };
Run Code Online (Sandbox Code Playgroud)

(如果您经常更改文件名作为参数,但不想在IDE中浏览某些对话框窗口,则特别有用).这样做的好处是我可以在构建版本时简单地注释掉该行.

因此,当我在Scala中尝试这个时,我发现参数是vals.(我不能var在参数前面写).

  • Q1:这个的理由是什么?
  • Q2:除了这样做之外,有没有明显的解决方法

    val newArgs = if (...) args else Array("some", "new", "arguments")
    
    Run Code Online (Sandbox Code Playgroud)

    并坚持newArgs剩下的主要方法?

soc*_*soc 13

Q1:改变输入参数通常被认为是糟糕的风格,并且更难以推理代码.

Q2:您可以在执行任何操作之前将其指定args给a var.