をvalの定義:scoptは "見つかりません:値が" scopt次の使用のために同じ名前を持つ
import java.io.File
object Application extends App {
case class Config(in: File = new File("."), out: File = new File("."), scripts: Seq[File] = Seq())
val parser = new scopt.OptionParser[Config]("scopt") {
head("Script Runner", "0.1")
opt[File]('i', "in") required() valueName ("<path>") action { (x, c) =>
c.copy(in = x)
} text ("required in path property")
opt[File]('o', "out") required() valueName ("<path>") action { (x, c) =>
c.copy(out = x)
} text ("required out path file property")
arg[File]("<file>...") unbounded() required() action { (x, c) =>
c.copy(scripts = c.scripts :+ x)
} text ("unbounded script paths")
}
val config = parser.parse(args, Config())
val scripts = config.map { argConfig => argConfig.scripts }
config match {
case Some(config) => println(config)
case _ => println("config undefined")
}
}
私はコンパイルエラーを取得:
[error] /Users/jamesclark/code/scratch/src/main/scala/Application.scala:13: not found: value x
[error] c.copy(out = x)
私はConfig
パラメータscripts
のいずれかの名前を変更する場合または値scripts
を入力してコンパイルします。
ここで起こっていることについて誰でも教えてもらえますか? コンパイラの問題ですか、それともいくつかの魔法がないのですか?
スカラ座2.11.8/SBT 0.13.7/scopt 3.5.0