Così sto lavorando attraverso alcuni degli esercizi di "Scala per l'Impaziente" e uno di loro è:Char o String -> Valore Unicode in Scala?
scrivere un ciclo for
per calcolare il prodotto dei codici Unicode di tutte le lettere in una stringa. Ad esempio, il prodotto dei caratteri in "Hello" è 9415087488 L.
Il prossimo problema è quello di fare lo stesso, ma senza un ciclo for
- si suggerisce di controllare StringOps
in Scaladoc.
Ho controllato la sezione RichChar
e StringOps
in Scaladoc, e forse sto fraintendendo o sto cercando nei posti sbagliati, ma non riesco a trovare nulla che possa farmi corrispondere al loro output. Ho finora provato:
scala> x.foldLeft(1)(_ * _.toInt)
res0: Int = 825152896
scala> x.foldLeft(1)(_ * _.getNumericValue)
res5: Int = 2518992
scala> x.foldLeft(1)(_ * _.intValue())
res6: Int = 825152896
scala> var x = 1
x: Int = 1
scala> for (c <- "Hello") x *= c.toInt
scala> x
res12: Int = 825152896
Che non corrisponde alla loro uscita.
Come si esegue questa operazione, in entrambi i modi for
e non for
?
Grazie!
C'è un altro modo, se lo si fa in due fasi. Suggerimento: l'ultimo dei due metodi ha solo un parametro implicito. –