Methoden vs. Funktionen
Teil des Abschnitts Logik & Ablauf der GO-Journey von Coddy — Lektion 10 von 68.
Während sowohl Methoden als auch Funktionen in Go Operationen ausführen, dienen sie unterschiedlichen Zwecken und haben unterschiedliche Deklarationsmuster. Das Verständnis dieses Unterschieds ist entscheidend für das Schreiben von klarem, organisiertem Code.
Eine Funktion ist eigenständig und unabhängig. Sie gehört zu keinem spezifischen Typ:
func calculateArea(width, height float64) float64 {
return width * height
}Eine Methode ist über einen Receiver an einen bestimmten Typ gebunden. Sie gehört zu diesem Typ und kann auf dessen Daten zugreifen:
func (r Rectangle) area() float64 {
return r.Width * r.Height
}Der entscheidende Unterschied liegt darin, wie man sie aufruft. Funktionen werden direkt über ihren Namen aufgerufen, während Methoden auf Instanzen ihres zugehörigen Typs unter Verwendung der Punktnotation aufgerufen werden. Diese Verknüpfung macht Methoden ideal für die Definition von Verhaltensweisen, die natürlicherweise zu Ihren benutzerdefinierten Typen gehören, während Funktionen gut für allgemeine Operationen geeignet sind, die nicht an spezifische Datenstrukturen gebunden sein müssen.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Spickzettel
Eine Funktion ist eigenständig und unabhängig:
func calculateArea(width, height float64) float64 {
return width * height
}Eine Methode ist über einen Receiver an einen bestimmten Typ gebunden:
func (r Rectangle) area() float64 {
return r.Width * r.Height
}Funktionen werden direkt über ihren Namen aufgerufen, während Methoden auf Instanzen mittels Punktnotation aufgerufen werden.
Probier es selbst
Diese Lektion enthält keine Programmieraufgabe.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Fortgeschrittener Kontrollfluss
Switch mit `fallthrough`Abbrechen von verschachtelten SchleifenFortsetzen einer bestimmten SchleifeDie `goto`-AnweisungZusammenfassung – Fortgeschrittene Schleifensteuerung4Projekt: Einfache Aufgabenliste
Projekt-SetupEine Aufgabe hinzufügen2Structs und Methoden
Methoden für Structs definierenValue ReceiverPointer ReceiverReceiver auswählenMethoden vs. FunktionenZusammenfassung – Struct-Verhalten5Maps im Detail
Maps von StructsPointer als Map-WertePrüfen auf Nil-MapsMaps vergleichenZusammenfassung – Wortfrequenz-Zähler8Projekt: Einfache Bestandsverwaltung
ProjektübersichtLagerbestand prüfen11Abschlussherausforderungen
Einfache KontaktlisteEinfacher Zahlen-ValidatorSammler für eindeutige Elemente3Interfaces (Die Grundlagen)
Was ist ein Interface?Ein Interface definierenEin Interface implementierenInterface-Typen verwendenLeeres InterfaceType AssertionsType SwitchZusammenfassung – Formen und Verhalten