Structs
In Go sind Structs benutzerdefinierte Datentypen, die es ermöglichen, mehrere Felder zu gruppieren, um komplexere Datenstrukturen zu definieren. Sie sind vergleichbar mit Klassen in anderen Programmiersprachen, bieten jedoch keine Vererbung. Hier sind einige wichtige Konzepte und Eigenschaften von Structs in Go:
Eigenschaften von Structs
- Sammlung von Feldern: Ein Struct besteht aus einer Sammlung von Feldern, die jeweils einen Namen und einen Typ haben.
- Benutzerdefiniert: Structs werden vom Benutzer definiert und können an die spezifischen Anforderungen einer Anwendung angepasst werden.
- Keine Vererbung: Im Gegensatz zu Klassen in objektorientierten Programmiersprachen unterstützen Structs keine Vererbung.
Definition und Erstellung von Structs
- Definition eines Structs: Ein Struct wird mit dem Schlüsselwort
type
definiert, gefolgt vom Namen des Structs und der Definition der Felder.
type Person struct {
Name string
Age int
}
- Erstellung einer Instanz: Eine Instanz eines Structs kann mithilfe eines Literals oder der
new
-Funktion erstellt werden.
// Mit einem Literal
p1 := Person{Name: "Alice", Age: 30}
// Mit der new-Funktion
p2 := new(Person)
p2.Name = "Bob"
p2.Age = 25
Arbeiten mit Structs
- Zugriff auf Felder: Auf die Felder eines Structs wird über den Punktoperator zugegriffen.
fmt.Println(p1.Name) // Ausgabe: Alice
- Ändern von Feldern: Die Werte der Felder eines Structs können direkt geändert werden.
p1.Age = 31
- Vergleich von Structs: Zwei Instanzen eines Structs können verglichen werden, wenn alle ihre Felder vergleichbar sind.
if p1 p2 {
fmt.Println("Die Personen sind gleich")
} else {
fmt.Println("Die Personen sind unterschiedlich")
}
Methoden für Structs
- Methoden definieren: In Go können Funktionen als Methoden für ein Struct definiert werden. Diese Methoden haben einen Empfänger, der entweder ein Wert oder ein Zeiger auf das Struct ist.
func (p *Person) Greet() {
fmt.Printf("Hallo, mein Name ist %s und ich bin %d Jahre alt.\n", p.Name, p.Age)
}
p1.Greet() // Ausgabe: Hallo, mein Name ist Alice und ich bin 31 Jahre alt.
Structs sind ein grundlegendes Konstrukt in Go, das es Entwicklern ermöglicht, komplexe Datentypen zu erstellen und zu verwalten. Sie bieten Flexibilität und Struktur für die Organisation von Daten innerhalb einer Anwendung.