-1

私の Scala アプリケーション (ver 2.11) では、アプリ全体でメインの引数を使用したいと考えています。

そのために、オブジェクト (Scala ではシングルトン) を作成し、main-args で初期化することを考えました。

このようなもの:

  object MyMain{
    def main(args: Array[String]):Unit = {
      //how to set SingletonArgs with args???
    }

  object SingletonArgs{
    def getArg0():String{...}
    def getArg1():String{...}
  }

  class AnotherClass(){
   def printArg0(){
     println(SingletonArgs.getArg0)
   }
}

SingletonArgs を初期化するにはどうすればよいですか?

主な引数を共有する別の方法はありますか?

4

1 に答える 1

4

ティムがコメントで述べたように、これをしないでください。

これらの引数でコードを乱雑にしたくない場合は、次を使用できますimplicits

object MyMain {
  def main(args: Array[String]): Unit = {
    implicit val myArgs = MyArgs(args(0), args(1))
    new AnotherClass().printArg0()
  }
}

case class MyArgs(arg0: String, arg1: String)

class AnotherClass()(implicit args: MyArgs) {
  def printArg0() {
    println(args.arg0)
  }
}
于 2019-07-11T08:56:01.803 に答える