如何在sbt控制台中向Scala文件传递参数?
在sbt控制台给加载的Scala脚本传递参数的方法
嘿,我明白你现在的困惑——用:load加载了你的test.scala脚本,但不知道怎么给里面的args(0)传值对吧?这里有几个实用的解决办法:
方法1:把脚本改成可调用的函数(最灵活)
先修改你的test.scala,把打印逻辑包装成一个接受参数的函数,这样加载后可以随时调用:
def sayHello(name: String): Unit = println("Hello, " + name + "!")
然后在sbt控制台里执行:
:load test.scala sayHello("Alice") // 你想传什么参数直接填这里就行
这样你可以多次调用这个函数,传不同的参数,非常方便。
方法2:预先定义args变量再加载脚本
如果你不想修改原脚本,也可以在sbt控制台里先定义好args数组,再加载脚本:
// 先设置你要传递的参数 val args = Array("Bob") // 然后加载脚本 :load test.scala
加载后脚本里的args(0)就会引用你刚才定义的数组元素,直接输出Hello, Bob!。
方法3:用sbt的run命令直接运行脚本
如果你不需要在控制台会话里交互,也可以直接用sbt的run命令来运行脚本并传递参数,不用:load:
在sbt控制台里输入:
run "Charlie"
sbt会自动编译并运行你的脚本,把"Charlie"作为第一个参数传给args(0)。
内容的提问来源于stack exchange,提问作者Victor Garbuz
相关产品推荐
相关产品推荐

