Подтвердить что ты не робот

Как распечатать список строк до стандартной ошибки в 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.

4b9b3361

Ответ 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