Menu
CoddyTech

Die map-Methode

Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 60 von 78.

Eine Funktion höherer Ordnung ist eine Funktion, die eine andere Funktion als Argument entgegennimmt. Arrays haben mehrere davon, und map() ist die erste.

map() ruft eine Funktion für jedes Element eines Arrays auf und gibt ein neues Array mit den Ergebnissen in derselben Reihenfolge zurück:

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]

Übergib die Funktion über ihren Namen, ohne Klammern: map(square) übergibt die Funktion, während map(square()) versuchen würde, sie sofort aufzurufen. map() ruft sie dann für jedes Element einmal auf: 1 wird zu 1, 2 wird zu 4, 3 wird zu 9 und so weiter.

Für eine kurze Berechnung erspart dir eine Lambda-Funktion die separate Funktion:

var squares = numbers.map(func(n): return n * n)

Das neue Array hat dieselbe Größe wie das Original, und numbers selbst ändert sich nicht. Die Ergebnisse können einen anderen Typ haben als die Elemente:

var words = ["apple", "kiwi", "banana"]
print(words.map(func(w): return w.length()))
[5, 4, 6]

map() gibt ein einfaches Array zurück, selbst wenn du es auf einem typisierten Array wie Array[int] aufrufst. Wenn du dieses Ergebnis in einer Variablen vom Typ Array[int] speicherst, wird das Programm mit einem Fehler beendet. Speichere es daher in einer untypisierten Variablen oder einem Array.

split() gibt ein PackedStringArray zurück, das keine map()-Methode hat. Wandle es zuerst in ein Array um: Array("1,2,3".split(",")).map(func(s): return int(s)) ergibt [1, 2, 3].

challenge icon

Aufgabe

Einfach

Schreibe eine Funktion namens convert_to_uppercase, die ein Array von Zeichenketten, strings, entgegennimmt und ein neues Array zurückgibt, in dem jede Zeichenkette in Großbuchstaben steht.

Verwende map() mit einem Lambda und keine Schleife. Zum Beispiel gibt convert_to_uppercase(["hello", "world"]) den Wert ["HELLO", "WORLD"] zurück.

Die Tests rufen convert_to_uppercase() selbst auf. Rufe die Funktion nicht auf und gib nichts aus.

Probier es selbst

func convert_to_uppercase(strings: Array[String]):
	# Schreibe hier den Code
	pass
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablaufsteuerung

Übe selbstständig: Online-GDScript-Compiler