Ho una lista in scala chiamata l: Lista [AType] che voglio cambiare alla lista [String].Il modo migliore per cambiare il tipo di lista in scala
Questo può sembrare un approccio molto sporco e inefficiente, ma non sono del tutto sicuro del modo migliore per farlo. Il mio codice è:
var result = new Array[String]("a","b")
l foreach { case a => result = result :+ (a.toString().toUpperCase()); }
result toList
Io non sono sicuro se questo è dove il mio errore è, perché non mi sta dando nulla, non è nemmeno la stampa di qualsiasi cosa, anche se ho messo una dichiarazione di stampa all'interno del ciclo.
così ho deciso di cambiare questo ad un modo più imperativo:
for(i <- 0 to l.length) {
result.update(i, l(i).toString)
}
Questa volta vedo cose che voglio vedere quando si stampa all'interno del ciclo, ma alla fine il programma si è bloccato con un errore IndexOutOfBound .
Esiste un modo più efficiente e migliore per farlo?
Grazie!
E se fosse di un altro tipo? Devo dire l.map (_. ToString) .map (_. ToUpperCase) o l.map (_. ToString._toUpperCase)? Quest'ultimo non ha funzionato per me ... –
@the_great_monkey quindi è 'l.map (_. ToString.toUpperCase)' – Moritz
'l.map (.toString) .map (.toUpperCase)' non è valido Scala. 'l.map (_. toString.toUpperCase)' funziona. Hai avuto uno spurio _ tra il punto e toUpperCase. –