2014-11-04 91 views
6
App對象

我目前正在與scalatest.org創建我的應用程序的一些單元測試:參數傳遞給在斯卡拉

scala> object Test extends App { 
    | println(args) 
    | } 

我如何可以傳遞參數給該對象?我試圖重寫args價值,但經過一番研究,我發現,這是不可能的:

/** The command line arguments passed to the application's `main` method. 
    */ 
    @deprecatedOverriding("args should not be overridden", "2.11.0") 
    protected def args: Array[String] = _args 

    private var _args: Array[String] = _ 

如何傳遞到代碼中的下劃線_自定義參數?

乾杯

+0

對於我來說,這似乎是一種代碼味道,將注意力集中在應用程序上,作爲注入新數據的入口點。爲什麼不從命令行運行? – 2014-11-04 19:06:31

回答

11

我想你想調用從應用程序繼承了main(args: Array[String])方法。

scala> object Test extends App { args.foreach(println) } 
defined object Test 

scala> Test.main(Array("A1")) 
A1 

scala> Test.main(Array("A1", "A2")) 
A1 
A2 
+0

'val test = Test; test.main(Array(「test」))'很適合我,謝謝! – zio 2014-11-04 16:57:36