Go hat keine Klassen. Stattdessen fasst ein struct Felder zusammen, und Methoden werden mit einem Empfänger an einen Typ gehängt. Mit einem Zeiger-Empfänger (func (k *Konto)) darf die Methode das Objekt verändern.
Großgeschriebene Namen sind außerhalb des Pakets sichtbar (exportiert), kleingeschriebene nicht.
type Konto struct {
Inhaber string
stand float64
}
func (k *Konto) Einzahlen(betrag float64) {
if betrag > 0 {
k.stand += betrag
}
}
func (k Konto) Stand() float64 { return k.stand }
func main() {
k := Konto{Inhaber: "Mia"}
k.Einzahlen(50)
fmt.Println(k.Stand()) // 50
}Merke
structstatt KlassenZeiger-Empfänger dürfen verändern
Großbuchstabe = außerhalb des Pakets sichtbar
Aufgabe
Ergänze `Abheben` mit einem Fehler bei zu wenig Guthaben.