Receiver auswählen
Teil des Abschnitts Logik & Ablauf der GO-Journey von Coddy — Lektion 9 von 68.
Nachdem Sie nun sowohl Value- als auch Pointer-Receiver verstehen, stellt sich die entscheidende Frage: Wann sollten Sie welchen verwenden? Die Entscheidung hängt davon ab, was Ihre Methode mit dem Receiver tun muss.
Verwenden Sie einen Pointer-Receiver, wenn Ihre Methode die ursprüngliche Struct ändern muss. Da Pointer-Receiver mit der tatsächlichen Struct-Instanz arbeiten, bleiben alle innerhalb der Methode vorgenommenen Änderungen nach dem Beenden der Methode bestehen. Dies ist unerlässlich für Methoden, die Felder aktualisieren, den Zustand ändern oder Operationen ausführen, die sich auf die ursprünglichen Daten auswirken sollen.
Verwenden Sie einen Value-Receiver, wenn Ihre Methode Daten aus dem Struct nur lesen muss, ohne sie zu ändern. Value-Receiver arbeiten mit einer Kopie. Daher eignen sie sich perfekt für Methoden, die Werte berechnen, Ausgaben formatieren oder Operationen durchführen, die keine Änderung am ursprünglichen Struct erfordern. Sie bieten zudem Sicherheit, indem sie garantieren, dass die ursprünglichen Daten unverändert bleiben.
Als allgemeine Regel gilt: Wenn Ihre Methode das Struct ändert, verwenden Sie einen Pointer-Receiver. Wenn Ihre Methode nur aus dem Struct liest, verwenden Sie einen Value-Receiver. Dieser Ansatz macht die Absichten Ihres Codes deutlich und hilft dabei, unbeabsichtigte Änderungen an Ihren Daten zu verhindern.
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
Verwenden Sie einen Pointer-Receiver, wenn Ihre Methode das ursprüngliche Struct ändern muss:
- Änderungen, die innerhalb der Methode vorgenommen werden, bleiben nach Rückkehr der Methode bestehen
- Unerlässlich für Methoden, die Felder aktualisieren oder den Zustand ändern
Verwenden Sie einen Value-Receiver, wenn Ihre Methode nur Daten aus dem Struct lesen muss:
- Arbeitet mit einer Kopie, sodass die ursprünglichen Daten unverändert bleiben
- Perfekt für Methoden, die Werte berechnen oder die Ausgabe formatieren
- Bietet Sicherheit, indem garantiert wird, dass keine unbeabsichtigten Änderungen vorgenommen werden
Allgemeine Regel: Wenn Ihre Methode das Struct ändert, verwenden Sie einen Pointer-Receiver. Wenn Ihre Methode nur aus dem Struct liest, verwenden Sie einen Value-Receiver.
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