Как распечатать список строк до стандартной ошибки в Scala?
Эта строка вызывает ошибку компиляции:
astgen.typeError.foreach(System.err.println)
typeError - это scala.collection.immutable.List строк в объекте astgen.
Ошибка, которую я получаю:
error: ambiguous reference to overloaded definition,
both method println in class PrintStream of type (java.lang.String)Unit
and method println in class PrintStream of type (Array[Char])Unit
match expected type (Nothing) => Unit
astgen.typeError.foreach(System.err.println)
Я новичок в Scala и не понимаю проблему. Использование 2.7.7final.
Ответы
Ответ 1
Даже не имея возможности точно воспроизвести проблему, я знаю, что вы можете решить эту двусмысленность, указав тип:
scala> List("a","b","c")
res0: List[java.lang.String] = List(a, b, c)
scala> res0.foreach(System.err.println(_:String))
a
b
c
В этом примере _:String
не требуется, возможно, это необходимо в вашем случае использования.
Ответ 2
В соответствии с RosettaCode вызов встроенного API Console
лучше, чем вызов библиотеки времени выполнения Java с помощью System.err
:
scala> List("aa", "bb", "cc").foreach(Console.err.println(_))
aa
bb
cc