Ошибка 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, но это должно работать.

Другие вопросы по тегам