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 * nvar 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].
Aufgabe
EinfachSchreibe 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
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablaufsteuerung
1Strings im Detail
String-MethodenIn Strings suchenErsetzen und TrimmenAufteilen und ZusammenfügenRückblick – Benutzernamen prüfen4Wörterbücher Teil 2
Verschachtelte WörterbücherArrays aus WörterbüchernWörterbücher zusammenführenWörterbücher kopierenWiederholung – Häufigkeitszähler10Fortgeschrittene Funktionen
Mehrere Werte zurückgebenLambda-Funktionen Teil 1Lambda-Funktionen Teil 2Wiederholung – Sortieren mit LambdaRekursive Funktionen Teil 1Rekursive Funktionen Teil 2Wiederholung – Verschachteltes Array summieren13Inventarverwaltungssystem
ProjektübersichtArtikel hinzufügen2Fortgeschrittene Entscheidungsfindung
Match mit VariablenMatch-GuardsArray-MusterDictionary-MusterMitgliedschaftsprüfungenRückblick – Befehlsparser5Kontaktbuch-Anwendung
Menü anzeigenKontakt hinzufügen8Schülerdatenverwaltung
ProjektübersichtSchüler hinzufügen11Funktionen höherer Ordnung
Die map-MethodeDie filter-MethodeDie reduce-Methodeany und allWiederholung – E-Mail-ValidatorWiederholung – Zahlenverarbeitung3Mehrdimensionale Arrays
Grundlagen zu 2D-ArraysAuf Elemente in 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysWiederholung – 2D-ArraysGezackte ArraysGängige Muster für 2D-ArraysWiederholung – Spielbrett6Mengen mit Dictionaries
Was ist eine Menge?Dictionary als MengeHinzufügen und EntfernenVereinigung und SchnittmengeMengendifferenzWiederholung – Duplikate entfernen9Fortgeschrittene Datenaggregation
Werte summierenMinimum und Maximum findenBenutzerdefiniertes SortierenRückblick – Wörterbuch-Sortierer12Einfache Fehlerbehandlung
Was ist Fehlerbehandlung?Eingaben validierenGuard ClausesFehlercodes zurückgebenRückblick – Sichere DivisionÜbe selbstständig: Online-GDScript-Compiler