Vai al contenuto principale
Pubblicato il

Funzioni in Go

Condividi:

Introduzione

Nel mondo della programmazione, le funzioni sono blocchi di codice riutilizzabili che eseguono un compito specifico. Go, essendo un linguaggio moderno e potente, offre una varietà di caratteristiche legate alle funzioni che lo rendono unico.

Dichiarazione delle Funzioni

In Go, una funzione viene dichiarata usando la parola chiave func, seguita dal nome della funzione, dai parametri (se presenti) e dal tipo di ritorno.

func nomeFunzione(parametro1 tipo1, parametro2 tipo2) tipoRitorno {
  // Corpo della funzione
}

Per esempio:

func somma(a int, b int) int {
  return a + b
}

Valori di Ritorno Multipli

Una caratteristica interessante di Go è la capacità di restituire più valori da una funzione.

func divisioneEResto(a int, b int) (int, int) {
  return a / b, a % b
}

Questa funzione restituisce sia il quoziente che il resto della divisione.

Funzioni Anonime e Closure

Go supporta le funzioni anonime, che possono formare closure. Le funzioni anonime sono utili quando si vuole definire una funzione inline senza darle un nome.

func() {
  fmt.Println("Questa è una funzione anonima!")
}()

Una closure è una funzione che ha accesso alle variabili del suo ambiente esterno:

func contatore() func() int {
  conto := 0

  return func() int {
    conto++
    return conto
  }
}

func main() {
  mioContatore := contatore()
  fmt.Println(mioContatore()) // Stampa 1
  fmt.Println(mioContatore()) // Stampa 2
}

Parametri Variadici

Go consente inoltre di usare parametri variadici, il che significa che è possibile passare un numero indefinito di parametri a una funzione. Vengono definiti usando ... prima del tipo del parametro.

func sommatoria(numeri ...int) int {
  totale := 0

  for _, num := range numeri {
    totale += num
  }

  return totale
}

Conclusione

Le funzioni in Go sono versatili e potenti, e permettono ai programmatori di creare codice pulito, efficiente e riutilizzabile. Che si tratti di sfruttare i valori di ritorno multipli, di usare le closure o di gestire i parametri variadici, padroneggiare le funzioni in Go è essenziale per una programmazione efficace.

Happy coding!