Che cos’è un’interfaccia?
Fa parte della sezione Logica e flusso del percorso GO di Coddy. Lezione 12 di 68.
Un'interfaccia in Go è come un contratto che definisce quali comportamenti deve avere un tipo, senza specificare come vengono implementati. Pensala come una raccolta di firme di metodi che descrive cosa può fare qualcosa.
Per comprendere meglio le interfacce, immagina una presa elettrica a casa tua.
La presa ha una forma specifica e fornisce elettricità, ma non le importa quale dispositivo ci colleghi. Che si tratti di una lampada, di un caricabatterie per telefono o di un computer, qualsiasi dispositivo con la forma di spina corretta può collegarsi e ricevere energia. La presa definisce l’«interfaccia», ovvero i requisiti per il collegamento.
In Go, un'interfaccia funziona in modo simile. Definisce un insieme di firme di metodi che un tipo deve avere per "collegarsi" a quell'interfaccia. Qualsiasi tipo che abbia tutti i metodi richiesti soddisfa automaticamente l'interfaccia, indipendentemente da cos'altro possa fare quel tipo o da come implementi quei metodi.
Questo concetto è potente perché ti permette di scrivere codice che funziona con qualsiasi tipo in grado di eseguire determinati comportamenti, rendendo i tuoi programmi più flessibili e riutilizzabili. Proprio come dispositivi diversi possono usare tutti la stessa presa di corrente, tipi Go diversi possono soddisfare la stessa interfaccia, purché abbiano i metodi richiesti.
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