2015-03-02 3 views
2

Я пытаюсь создать scopt вариант для Seq[String]:Scala 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 или что-то еще?

+0

могли бы вы предоставить полный пример? – Conrad

+0

Btw: При использовании sbt проект будет автоматически обновлен до Scala 2.11.4 для меня. – Conrad

ответ

-1

Глядя на source code, похоже, вам просто нужно import scopt.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) 
} 

Примечание: Я не запускать это через РЕПЛ, чтобы проверить, но он должен работать.

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")