La méthode map
Fait partie de la section Logique et flux d’exécution du Journey GDScript de Coddy. Leçon 60 sur 78.
Une fonction d’ordre supérieur est une fonction qui prend une autre fonction comme argument. Les tableaux en possèdent plusieurs, et map() est la première.
map() appelle une fonction sur chaque élément d’un tableau et renvoie un nouveau tableau contenant les résultats, dans le même ordre :
func square(n):
return n * nvar numbers = [1, 2, 3, 4, 5]
var squares = numbers.map(square)
print(squares)[1, 4, 9, 16, 25]Passez la fonction en indiquant son nom, sans parenthèses : map(square) transmet la fonction, tandis que map(square()) tenterait de l’appeler immédiatement. map() l’appelle ensuite une fois pour chaque élément : 1 devient 1, 2 devient 4, 3 devient 9, et ainsi de suite.
Pour un calcul court, une lambda t’évite d’écrire une fonction séparée :
var squares = numbers.map(func(n): return n * n)Le nouveau tableau a la même taille que l’original, et numbers lui-même ne change pas. Les résultats peuvent être d’un type différent de celui des éléments :
var words = ["apple", "kiwi", "banana"]
print(words.map(func(w): return w.length()))[5, 4, 6]map() renvoie un Array ordinaire, même lorsque tu l’appelles sur un tableau typé comme Array[int]. Stocker ce résultat dans une variable Array[int] arrête le programme avec une erreur ; stocke-le donc dans une variable non typée ou un Array.
split() renvoie un PackedStringArray, qui ne possède pas de map(). Transformez-le d’abord en Array : Array("1,2,3".split(",")).map(func(s): return int(s)) donne [1, 2, 3].
Défi
FacileÉcris une fonction nommée convert_to_uppercase qui prend un tableau de chaînes, strings, et renvoie un nouveau tableau avec chaque chaîne en majuscules.
Utilise map() avec une lambda, sans boucle. Par exemple, convert_to_uppercase(["hello", "world"]) renvoie ["HELLO", "WORLD"].
Les tests appellent eux-mêmes convert_to_uppercase(). Ne l’appelle pas et n’affiche rien.
Essayez vous-même
func convert_to_uppercase(strings: Array[String]):
# Écrivez le code ici
pass
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et flux d’exécution
1Les chaînes de caractères en profondeur
Méthodes des chaînesRechercher dans les chaînesRemplacer et supprimer les espacesDécouper et joindreRécapitulatif - Vérifier un nom d’utilisateur4Dictionnaires, partie 2
Dictionnaires imbriquésTableaux de dictionnairesFusionner des dictionnairesCopier des dictionnairesRécapitulatif - Compteur de fréquence7Énumérations
Qu’est-ce qu’une énumération ?Définir une énumérationValeurs d’une énumérationÉnumérations avec matchRécapitulatif - Feu de circulation10Fonctions avancées
Renvoyer plusieurs valeursFonctions lambda, partie 1Fonctions lambda, partie 2Récapitulatif - Tri avec lambdaFonctions récursives, partie 1Fonctions récursives, partie 2Récapitulatif - Somme d’un tableau imbriqué13Système de gestion des stocks
Présentation du projetAjouter un article2Prise de décision avancée
Correspondance avec des variablesGardes de correspondanceMotifs de tableauMotifs de dictionnaireVérifications d’appartenanceRécapitulatif – Analyseur de commandes5Application de carnet d’adresses
Afficher le menuAjouter un contact8Gestionnaire des dossiers étudiants
Aperçu du projetAjouter un étudiant11Fonctions d’ordre supérieur
La méthode mapLa méthode filterLa méthode reduceany et allRécapitulatif - Validateur d’e-mailsRécapitulatif - Traitement de nombres3Tableaux multidimensionnels
Bases des tableaux 2DAccéder aux éléments d’un tableau 2DBoucles imbriquées avec des tableaux 2DRécapitulatif - Tableaux 2DTableaux irréguliersMotifs courants des tableaux 2DRécapitulatif - Plateau de jeu6Les ensembles avec les dictionnaires
Qu’est-ce qu’un ensemble ?Un dictionnaire comme ensembleAjouter et supprimerUnion et intersectionDifférence d’ensemblesRécapitulatif – Supprimer les doublons9Agrégation avancée de données
Additionner des valeursTrouver le minimum et le maximumTri personnaliséRécapitulatif - Trieur de dictionnairesEntraînez-vous par vous-même : Compilateur GDScript en ligne