Menu
CoddyTech

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 int

Das 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].

challenge icon

Aufgabe

Einfach

Das Programm liest eine Anzahl aus der Eingabe und anschließend ebenso viele Punktzahlen, eine pro Zeile.

  1. Deklariere scores als leeres typisiertes Array von Ganzzahlen
  2. Lies jede Punktzahl ein, wandle sie mit int() um und füge sie zu scores hinzu
  3. Gib scores aus, dann Best: gefolgt von der höchsten Punktzahl

Für die folgende Eingabe lautet die Ausgabe:

3
70
95
88
[70, 95, 88]
Best: 95

Probier 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
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 Grundlagen

Übe selbstständig: Online-GDScript-Compiler