Je veux initialiser un éventail d'entiers consécutifs (disons de 1 à 100) dans Scala. Quelle est la meilleure façon de le faire dans les paradigmes impératifs et fonctionnels? p> p>
3 Réponses :
Si vous êtes du monde de em> em> strong> programmation, vous trouverez cette technique familière: Notez que les tableaux de Scala sont accessibles à l'aide de la paranthèse incurvée et non carrées (comme dans Java, C etc.). P> A plus
Le moyen fonctionnel le plus général d'initialiser serait probablement ici, le premier L'argument est la taille de la matrice et le deuxième argument est la fonction qui mesure les indices sur les valeurs. P> Si vous voulez faire Il est aussi rapide que possible à l'aide d'un seul fil, le code impératif suivant serait probablement difficile à battre, car il n'utilise aucune fonction d'ordre supérieur nulle part: p> A l'avantage que vous avez le contrôle sur la matrice, vous n'avez donc pas à allouer une nouvelle mémoire si vous avez déjà un tableau alloué. P> << Si l'initialisation serait moins triviale (non seulement incrémenter un entier), la version parallèle suivante pourrait fonctionner plus rapidement pour un très grand Comme déjà mentionné dans le commentaire, dans ce cas simple p> aurait été suffisant. p> h3> tabuler code>: p>
impératif: encombrant, mais très rapide h3>
avec des collections parallèles h3>
N code>: p>
Quick & Dirty (et probablement aussi vite que la version impérative de toute façon) h3>
Il existe un tableau code> dédié code> Builder ( def def (Démarrer: int, fin: int): tableau [int] p>
blockQuote> Array.Range code> ) dans le but de construire un Tableau code> comme une plage: