Funzioni

Funzioni #

// Le _Funzioni_ svolgono un ruolo fondamentale in Go.
// Capiremo come usare le funzioni tramite una serie di esempi

package main

import "fmt"

// Questa è una funzione che accetta due parametri
// di tipo `int` e restituisce la loro somma (sempre di tipo `int`).
func plus(a int, b int) int {

    // Go non restituirà il valore dell'ultima espressione: se
    // bisogna restituire un valore, lo si deve restituire
    // esplicitamente con il comando `return`
    return a + b
}

// Nelle funzioni con parametri multipli dello stesso tipo
// si può omettere il tipo per i parametri consecutivi che
// hanno lo stesso tipo, e indicare il tipo solo per
// l'ultimo parametro.
func plusPlus(a, b, c int) int {
    return a + b + c
}

func main() {

    // Puoi chiamare una funzione con la classica
    // sintassi `nomefunzione(parametri)`.
    res := plus(1, 2)
    fmt.Println("1+2 =", res)

    res = plusPlus(1, 2, 3)
    fmt.Println("1+2+3 =", res)
}
$ go run functions.go 
1+2 = 3
1+2+3 = 6

# Go possiede svariate features legate alle funzioni.
# Una di queste è la possibilità di restituire valori
# multipli, come vedremo nel prossimo esempio.