Multipli Valori Restituiti

Multipli Valori Restituiti #

// Go supporta _valori restituiti multipli_, similmente
// a python. Questa funzionalità è usata spesso nel Go
// idiomatico, per esempio per restituire sia il valore
// sia l'eventuale errore nell'esecuzione di una funzione.

package main

import "fmt"

// L'indicazione `(int, int)` in questa funzione ci dice
// che la funzione restituisce due `int`.
func vals() (int, int) {
    return 3, 7
}

func main() {

    // Di seguito utilizzando il _multiple assignment_
    // creiamo due diverse variabili dai valori restituiti
    // della funzione `vals()`.
    a, b := vals()
    fmt.Println(a)
    fmt.Println(b)

    // Se vuoi soltanto avere una parte dei valori
    // restituiti, usa il blank identifier `_`.
    _, c := vals()
    fmt.Println(c)
}

// todo: named return parameters
// todo: naked returns
$ go run multiple-return-values.go
3
7
7

# Accettare un numero variabile di valori nella chiamata
# di una funzione è un'altra feature di go: vedremo come
# farlo nel prossimo esempio.