Je viens de convertir Java suivant dans Scala:Scala signatures de type inconsistant: Range.toList et Range.toArray
char[] map = new char[64];
int i=0;
for (char c='A'; c<='Z'; c++) map[i++] = c;
for (char c='a'; c<='z'; c++) map[i++] = c;
for (char c='0'; c<='9'; c++) map[i++] = c;
map[i++] = '+';
map[i++] = '/';
Ma première tentative a été un tableau:
val map1 = (
('A' to 'Z') ++ ('a' to 'z') ++ ('0' to '9')
).toArray[Char] ++ Array('+', '/');
Cela fonctionne! Un peu plus de lecture et j'ai réalisé que Array
est un type mutable, alors que List
est immuable, donc je l'ai changé:
val map1 = (
('A' to 'Z') ++ ('a' to 'z') ++ ('0' to '9')
).toList ++ List('+', '/');
Le code devient un peu plus facile à lire ici, avec le trait toList
ne pas prendre un argument de type , alors que je devais écrire toArray[Char]
. Pourquoi? S'agit-il d'une interopérabilité Java, ou s'agit-il d'une incohérence de bibliothèque, avec toList
provenant de Iterable
et toArray
provenant de Collection
?
C'est donc une question « fixe à 2,8 ». Merci! –