Non capisco il motivo per cui il seguente codice non viene compilato:Omettere punti quando concatenare le chiamate
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: errore: tipo non corrispondente; trovato: java.lang.String richiesto: Int b (ls.head)
Quando cambio "y.lines toList" per
y.lines.toList
o anche per
y.lines toList;
lo fa compilare.
Forse il compilatore capisce come
(y.lines).toList(b (ls.head))
o qualcosa del genere, ma io continuo a non capire le regole.
È possibile inserire la dichiarazione "(y.lines) .toList (b (ls.head)) " (beh, forse l'hai fatto?) Nel REPL, per verificare che il messaggio di errore sia lo stesso. Bene - L'ho fatto, e infatti lo è. :) –
Ecco perché non capisco tutti a lamentarsi di ';'. – Raphael