2

我正在尝试为以下内容创建一个scopt选项Seq[String]

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还是别的什么?

4

2 回答 2

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")
于 2017-07-04T19:30:33.020 回答
-1

查看源代码,看起来您只需要这样做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 运行它来验证,但它应该可以工作。

于 2015-03-02T21:42:01.400 回答