No entiendo por qué el siguiente código no se compila:La omisión de puntos al encadenar llamadas
class Abc
{
def b (x : String) = x + "abc"
def a (y : String) =
{
val ls : List[String] = y.lines toList
b (ls.head)
}
}
Main.scala: 8: Error: No coinciden los tipos; encontrado: java.lang.String requerido: Int b (ls.head)
Cuando cambio "y.lines toList" para
y.lines.toList
o incluso a
y.lines toList;
compila
Tal vez el compilador lo entiende como
(y.lines).toList(b (ls.head))
o algo por el estilo, pero todavía no entienden las reglas.
Puede insertar su extracto '(y.lines) .toList (b (ls.head)) ' (¿bueno, tal vez lo hizo?) En el REPL, para verificar que el mensaje de error es el mismo. Bueno, lo hice, y de hecho, lo es. :) –
Es por eso que no me gusta que todo el mundo gime ';'. – Raphael