tratando de ejecutar el código de muestra en el libro de Apress llamado "Beginning Scala". Incluso descargué el código de su sitio web para asegurarme de que no lo hice. Recibiendo el siguiente mensaje:código de error en el código de ejemplo de "Beginning Scala"
/root/sum.scala:19: error: missing arguments for method collect in trait Iterator;
follow this method with `_' if you want to treat it as a partially applied function
val lines = input.getLines.collect
^
one error found
y aquí está el código fuente que utilicé (que ejecuta la versión Scala 2.8.1.final (Java HotSpot (TM) Server VM, Java 1.6.0_22 en Fedora 13)
import scala.io._
def toInt(in: String): Option[Int] =
try {
Some(Integer.parseInt(in.trim))
} catch {
case e: NumberFormatException => None
}
def sum(in: Seq[String]) = {
val ints = in.flatMap(s => toInt(s))
ints.foldLeft(0)((a, b) => a + b)
}
println("Enter some numbers and press ctrl-D (Unix/Mac) ctrl-C (Windows)")
val input = Source.fromInputStream(System.in)
val lines = input.getLines.collect
println("Sum "+sum(lines))
se parece a esto es el cambio relevante:..
el método Iterator.collect() en 2.7.7 devuelve un Seq en 2.8, que se utiliza para realizar un mapa condicional utilizando una función parcial puede use input.getLines.toSeq en lugar.
Esto no es cierto en muchas maneras para que responda a través de mi teléfono. Como una solución rápida y sucia, intente simplemente eliminar el '.collect' al final de esa línea. –