Scegliere i receiver
Fa parte della sezione Logica e flusso del percorso GO di Coddy. Lezione 9 di 68.
Ora che hai compreso sia i receiver di valore sia quelli di puntatore, la domanda fondamentale è: quando dovresti usare ciascuno? La decisione dipende da cosa deve fare il tuo metodo con il receiver.
Usa un receiver puntatore quando il tuo metodo deve modificare la struct originale. Poiché i receiver puntatore operano sull’istanza effettiva della struct, qualsiasi modifica apportata all’interno del metodo persisterà dopo la restituzione del metodo. Questo è essenziale per i metodi che aggiornano i campi, cambiano lo stato o eseguono operazioni che devono influire sui dati originali.
Usa un ricevitore per valore quando il tuo metodo deve solo leggere i dati dalla struct senza modificarli. I ricevitori per valore lavorano con una copia, quindi sono perfetti per i metodi che calcolano valori, formattano l'output o eseguono qualsiasi operazione che non richieda di modificare la struct originale. Offrono anche sicurezza garantendo che i dati originali rimangano invariati.
Come regola generale: se il tuo metodo modifica la struct, usa un receiver puntatore. Se il tuo metodo legge soltanto i dati della struct, usa un receiver per valore. Questo approccio rende chiare le intenzioni del tuo codice e aiuta a prevenire modifiche involontarie ai tuoi dati.
Provalo tu
Questa lezione non include una sfida di codice.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Flusso di controllo avanzato
Switch con `fallthrough`Uscire dai cicli annidatiContinuare un ciclo specificoL'istruzione `goto`Riepilogo - Controllo avanzato dei cicli4Progetto: semplice lista di attività
Configurazione del progettoAggiungere un’attività2Struct e metodi
Definire metodi sugli structReceiver per valoreReceiver con puntatoreScegliere i receiverMetodi vs funzioniRiepilogo - comportamento degli struct5Mappe in dettaglio
Mappe di structPuntatori come valori delle mappeVerificare le mappe nilConfrontare le mappeRiepilogo - Contatore della frequenza delle parole3Interfacce (le basi)
Che cos’è un’interfaccia?Definire un’interfacciaImplementare un’interfacciaUsare i tipi interfacciaInterfaccia vuotaAsserzioni di tipoSwitch di tipoRiepilogo: forme e comportamentiEsercitati da solo: Compilatore Go online