Typisierte Arrays
Teil des Abschnitts Grundlagen der GDScript-Journey von Coddy. Lektion 68 von 92.
Ein gewöhnliches Array akzeptiert Werte beliebigen Typs. Ein typisiertes Array akzeptiert nur einen Typ, der in eckigen Klammern hinter Array angegeben wird:
var scores: Array[int] = [90, 85, 77]
var players: Array[String] = ["Ana", "Ben"]
var bonuses: Array[int] = []GDScript überprüft jeden Wert. Ein Wert des falschen Typs in den eckigen Klammern wird gemeldet, bevor das Programm ausgeführt wird:
var scores: Array[int] = [90, "high"] # Fehler: "high" ist kein intDas Hinzufügen eines Werts des falschen Typs während der Programmausführung ist ebenfalls ein Fehler, und der Wert wird nicht hinzugefügt:
var scores: Array[int] = [90, 85]
var bonus = "ten"
scores.append(bonus) # Fehler, scores bleibt [90, 85]Typinferenz mit := erstellt kein typisiertes Array: var scores := [90, 85] ist ein einfaches Array. Schreibe Array[int], um ein solches zu erhalten.
Da ein typisiertes Array den Typ seiner Elemente kennt, leitet var best := scores[0] den Typ int ab. Bei einem gewöhnlichen Array ist dieselbe Zeile ein Fehler, da seine Elemente jeden beliebigen Typ haben können.
Typisierte Arrays haben dieselben Indizes und Methoden wie gewöhnliche Arrays, und print(scores) zeigt sie auf dieselbe Weise an: [90, 85].
Aufgabe
EinfachDas Programm liest eine Anzahl aus der Eingabe und anschließend ebenso viele Punktzahlen, eine pro Zeile.
- Deklariere
scoresals leeres typisiertes Array von Ganzzahlen - Lies jede Punktzahl ein, wandle sie mit
int()um und füge sie zuscoreshinzu - Gib
scoresaus, dannBest:gefolgt von der höchsten Punktzahl
Für die folgende Eingabe lautet die Ausgabe:
3
70
95
88[70, 95, 88]
Best: 95Probier es selbst
extends Node
func _ready():
var count := int(OS.read_string_from_stdin())
# 1. Deklariere scores als leeres typisiertes Array von int
# 2. Lies count Punktzahlen ein und füge jede zu scores hinzu
# 3. Gib scores aus, dann "Best: " und die höchste Punktzahl
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenGanzzahldivisionModulo-OperatorRechenabkürzungenRückblick – Einfache MathematikVergleichsoperatoren7Einfache Ein- und Ausgabe
AusgabeAusgabe mit VariablenString-FormatierungEingabeTypumwandlungWiederholung – bis 120Wiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenArgumenteRückgabewertRückgabetypenWiederholung – Sigma-FunktionWiederholung – ValidierungsfunktionStandardwerte5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechnungsteiler
BegrüßungsnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion3Variablen Teil 2
TypdeklarationTypinferenzKonstantenWiederholung – Variablen initialisierenTypumwandlung6Entscheidungen treffen
If-AnweisungIf - ElseWiederholung – einfacher TaschenrechnerVerschachteltes If - ElseMatch-Anweisung9Schleifen
For-SchleifeWhile-SchleifeBreakContinueWiederholung – FakultätDie Range-FunktionVerschachtelte SchleifeWiederholung – Dynamische Eingabe12Grundlagen von Arrays
Ein Array deklarierenAuf Array-Elemente zugreifenArrays verändernArray-MethodenWiederholung – Produkt-ArrayWiederholung – umgekehrtes ArrayTypisierte ArraysÜbe selbstständig: Online-GDScript-Compiler