Menu
CoddyTech

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 * n
var 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].

challenge icon

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
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Compilateur GDScript en ligne