Ошибка Scala Scopt с Seq[String]
Я пытаюсь создать опцию 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
или что-то другое?
2 ответа
Эта ошибка, кажется, решена в 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")
Глядя на исходный код, похоже, что вам просто нужно 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, но это должно работать.