Mehrdimensionale Arrays
Teil des Abschnitts Grundlagen der GO-Journey von Coddy — Lektion 73 von 109.
Mehrdimensionale Arrays sind Arrays, die andere Arrays als Elemente enthalten. Sie sind nützlich für die Darstellung von Gittern oder Tabellen.
Erstellen Sie ein 2×3-Array (2 Zeilen, 3 Spalten), um ein Gitter aus Zahlen darzustellen:
grid := [2][3]int{
{1, 2, 3},
{4, 5, 6},
}Greifen Sie mit zwei Indizes auf Elemente zu – zuerst für die Zeile, dann für die Spalte:
element := grid[0][2]
fmt.Println(element)Dies zeigt das Element in Zeile 0, Spalte 2 an:
3Aufgabe
AnfängerIn dieser Herausforderung arbeitest du mit einem mehrdimensionalen Array, das ein kleines Gitter aus Zahlen darstellt. Deine Aufgabe ist es, auf ein bestimmtes Element aus diesem 2D-Array zuzugreifen und es auszugeben.
Das Gitter stellt ein einfaches 3x3-Spielfeld mit Zahlen dar:
1 2 3 4 5 6 7 8 9
Deine Aufgabe ist es, den Wert in Zeile 1, Spalte 2 auszugeben (was die Zahl 6 sein sollte).
Spickzettel
Mehrdimensionale Arrays enthalten andere Arrays als Elemente, was nützlich für die Darstellung von Gittern oder Tabellen ist.
Erstellen Sie ein 2D-Array:
grid := [2][3]int{
{1, 2, 3},
{4, 5, 6},
}Greifen Sie mit zwei Indizes auf Elemente zu – zuerst für die Zeile, dann für die Spalte:
element := grid[0][2] // Zeile 0, Spalte 2
fmt.Println(element) // gibt aus: 3Probier es selbst
package main
import "fmt"
func main() {
// Dies ist ein 3x3-Gitter, das als 2D-Array dargestellt wird
grid := [][]int{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
}
// TODO: Greife auf den Wert in Zeile 1, Spalte 2 zu und gib ihn aus (sollte 6 sein)
// Denke daran: Array-Indizes beginnen bei 0, daher ist Zeile 1 die zweite Zeile
// Schreibe deinen Code unter diese Zeile
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Vergleichs- & logische Operatoren
Vergleichsoperatoren - Teil 1Vergleichsoperatoren - Teil 2Logischer UND-OperatorLogischer ODER-OperatorLogischer NICHT-OperatorGrundlagen der OperatorrangfolgeZusammenfassung - Vergleiche anstellen7Kontrollfluss: Schleifen
Die `for`-Schleife erklärtfor-Schleife - Grundlagenfor-Schleife - Nur BedingungDas `break`-SchlüsselwortDas `continue`-SchlüsselwortVerschachtelte SchleifenZusammenfassung - Aktionen wiederholen10Zusammengesetzte Typen: Arrays
Einführung in ArraysDeklarieren von ArraysInitialisieren von ArraysZugriff auf Array-ElementeArray-Länge mit `len`Iterieren über ArraysMehrdimensionale Arrays2Variablen und grundlegende Datentypen
Was ist eine VariableTypinferenz mit `:=`Ganzzahlen (int)GleitkommazahlenBoolesche WerteStringsZero ValuesKonstantenNamenskonventionenZusammenfassung - Variablen und Typen5Grundlagen der Ein- und Ausgabe
Formatierte AusgabeFormat-VerbenTypen ausgebenEinfache Benutzereingaben erhaltenZusammenfassung – Ein- und Ausgabe8Funktionen
Funktionen verstehenEine Funktion deklarierenFunktionen aufrufenFunktionsparameterEinen einzelnen Wert zurückgebenMehrere Werte zurückgebenBenannte RückgabewerteGrundlagen des Funktions-ScopesZusammenfassung – Wiederverwendbaren Code erstellen3Grundlegende Operatoren
Arithmetische OperatorenDivisionsoperatorDer Modulo-OperatorZuweisungsoperatorKombinierte ZuweisungsoperatorenInkrement und DekrementZusammenfassung - Berechnungen6Kontrollfluss: Bedingte Anweisungen
Die `if`-AnweisungDas `else`-SchlüsselwortDas `else if`-SchlüsselwortVariable Shadowing in `if`Variablen initialisierenDie `switch`-AnweisungSwitch mit AusdrückenSwitch ohne AusdruckDas `fallthrough`-SchlüsselwortZusammenfassung – Entscheidungen treffen9Zeiger
Was ist ein Zeiger?Deklarieren von ZeigervariablenDer AdressoperatorDereferenzieren von ZeigernVerwendung von Zeigern in FunktionenNil-ZeigerZusammenfassung – Zeiger verstehen12Zusammengesetzte Typen: Maps
Einführung in MapsDeklarieren von Map-LiteralenErstellen von Maps mit `make`Hinzufügen und Aktualisieren von Key-Value-PaarenZugriff auf Map-WerteÜberprüfen der Existenz von SchlüsselnLöschen von Map-EinträgenMap-LängeIterieren über MapsZusammenfassung – Key-Value-Speicher