Scala di sottolineatura – ERRORE: manca il parametro di tipo espanso funzione

So che ci sono stati un paio di domande su questo, ma ho creato un semplice esempio che ho pensato che dovrebbe funzionare,ma ancora non e io non sono sicuro di capire perché

val myStrings = new Array[String](3)
//do some string initialization

//this works
myStrings.foreach(println(_))


//ERROR: missing parameter type for expanded function
myStrings.foreach(println(_.toString))

Qualcuno può spiegare perché la seconda istruzione non compilare?

  • Ancora più semplice: myStrings.foreach (println)

 

One Reply
  1. 106

    Si espande:

    myStrings.foreach(println(x => x.toString))

    Si desidera:

    myStrings.foreach(x => println(x.toString))

    La sintassi dei segnaposto per le funzioni anonime sostituisce il più piccolo possibile, contenente l’espressione di una funzione.

Lascia un commento