TUTORIAL GO – METODI E INTERFACCE

Go non consente di definire le classi ma consente di definire dei metodi disponibili per una struttura.

Nel blocco sopra ho definito una struttura Persona che contiene nome e cognome. Per definire un metodo si usa una sintassi simile alla definizione di una funzione. Si usa la parola chiave func, definita dalla struttura cui si applica, il nome del metodo, la lista dei parametri che riceve in ingresso e l’eventuale output. Nello specifico ho definito un metodo iniziali che stampa le iniziali della persona.

Nell’esempio di sopra il metodo definito sfrutta il passaggio per valore, ovvero il metodo opera su una copia della struttura persona senza modificare i valori dell’istanza di partenza. Per ovviare a questo Go mette a disposizione il passaggio per riferimento, che si ottiene specificando il puntatore alla struttura.

Con questo approccio invocando il metodo iniziali si avrà l’effetto desiderato. In assenza del puntatore non si avrebbe l’effetto atteso.

Go mette a disposizione anche il costrutto interfaccia, ovvero permette di definire una lista di metodi che le strutture devono implementare

In questo caso ho definito una interfaccia Familiare che prevede il metodo iniziali, pertanto posso invocare il metodo iniziali su una variabile che implementa l’interfaccia Familiare