我正在尝试为Seq[String]
创建scopt选项:
import scopt._
import scopt.Read._
opt[Seq[String]]("foobar")
^ error
但是编译器抱怨它could not find implicit value for evidence parameter of type scopt.Read[Seq[String]]
。
我正在使用Scala 2.11.2和scopt 3.3.0。
我错过了import
还是其他什么?
答案 0 :(得分:0)
此错误似乎在scopt“3.6.0”
中得到解决这是我的build.sbt的样子:
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
"org.apache.spark" % "spark-core_2.11" % "2.1.0" ,
"com.github.scopt" %% "scopt" % "3.6.0")
答案 1 :(得分:-1)
查看source code,看起来您只需要import scopt.Read
。这将导入包含隐式的Read伴侣对象,以便为您处理:
// reads("1,2,3,4,5") == Seq(1,2,3,4,5)
implicit def seqRead[A: Read]: Read[Seq[A]] = reads { (s: String) =>
s.split(sep).map(implicitly[Read[A]].reads)
}
注意:我没有通过REPL运行它来验证,但它应该可以工作。