Scala scopt错误与Seq [String]

时间:2015-03-02 20:23:56

标签: scala implicit scopt

我正在尝试为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还是其他什么?

2 个答案:

答案 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运行它来验证,但它应该可以工作。