def multiplyStringNumericChars(list: String): Int = {
var product = 1;
println(s"The actual thing + $list")
list.foreach(x => { println(x.toInt);
product = product * x.toInt;
});
product;
};
Questa è una funzione che accetta una stringa come 12345
e deve restituire il risultato di 1 * 2 * 3 * 4 * 5
. Tuttavia, sto tornando non ha alcun senso. In realtà, qual è la conversione implicita da Char
a Int
?Conversione Scala scalare a conversione
Sembra aggiungere 48
a tutti i valori. Se invece faccio product = product * (x.toInt - 48)
i risultati sono corretti.
Per un carattere, restituisce Toint il codice del carattere corrispondente. Usa x.asDigit per ottenere l'intero corrispondente a una cifra (questo funziona fino alla base 36 se includi lettere). –