Valori di Ritorno dalle Funzioni
La possibilità di passare dati alle funzioni è utile, ma è altrettanto vantaggioso recuperare dati dalle funzioni. Qui entra in gioco la parola chiave return.
La parola chiave return consente alle funzioni di restituire dati al punto del codice in cui sono state invocate. Ecco la sintassi per una funzione con un'istruzione return:
func functionName(param_1 datatype, param_2 datatype, ...) return_datatype {
// Code
return data_to_be_returned
}
data_to_be_returned indica dove specificare un'espressione o un valore. returned_datatype rappresenta il tipo di dato previsto per il valore che verrà restituito. Questo concetto sarà più chiaro attraverso un esempio.
Il programma seguente illustra l'implementazione di un'istruzione return tramite una funzione che calcola e restituisce sia la somma che il prodotto di due argomenti interi forniti:
index.go
1234567891011121314package main import "fmt" func myFunc(value_1 int, value_2 int) int { var sum int = value_1 + value_2 var prod int = value_1 * value_2 var result int = sum + prod return result } func main() { fmt.Println(myFunc(5, 7)) }
Si noti che all'interno della funzione Println abbiamo myFunc(5, 7), e il programma sopra produce l'output 47, che deriva dai calcoli eseguiti dalla funzione myFunc(). Questo dimostra che l'istruzione return restituisce dati specifici al punto in cui la funzione è stata invocata. Inoltre, è possibile memorizzare i dati restituiti in una variabile:
index.go
12var returnedValue int = myFunc(5, 7) fmt.Println(returnedValue) // Outputs '47'
Nota
Una funzione non richiede parametri per includere un'istruzione
return.
Una funzione non può contenere alcun codice dopo un'istruzione return e, generalmente, Go non consente più istruzioni return:
index.go
1234567891011// Function exits after the first return statement it encounters func exampleOne() int { return 1 return 2 // Will be ignored } // There cannot be any code after a return statement func exampleTwo() int { return 1 fmt.Println() // Error here }
Tuttavia, è possibile utilizzare l'istruzione return all'interno di strutture condizionali per restituire selettivamente dei valori:
index.go
123456789101112131415package main import "fmt" func myFunc() string { if(1 > 2) { return "1 is greater than 2" } else { return "2 is greater than 1" } } func main() { fmt.Println(myFunc()) }
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 1.96
Valori di Ritorno dalle Funzioni
Scorri per mostrare il menu
La possibilità di passare dati alle funzioni è utile, ma è altrettanto vantaggioso recuperare dati dalle funzioni. Qui entra in gioco la parola chiave return.
La parola chiave return consente alle funzioni di restituire dati al punto del codice in cui sono state invocate. Ecco la sintassi per una funzione con un'istruzione return:
func functionName(param_1 datatype, param_2 datatype, ...) return_datatype {
// Code
return data_to_be_returned
}
data_to_be_returned indica dove specificare un'espressione o un valore. returned_datatype rappresenta il tipo di dato previsto per il valore che verrà restituito. Questo concetto sarà più chiaro attraverso un esempio.
Il programma seguente illustra l'implementazione di un'istruzione return tramite una funzione che calcola e restituisce sia la somma che il prodotto di due argomenti interi forniti:
index.go
1234567891011121314package main import "fmt" func myFunc(value_1 int, value_2 int) int { var sum int = value_1 + value_2 var prod int = value_1 * value_2 var result int = sum + prod return result } func main() { fmt.Println(myFunc(5, 7)) }
Si noti che all'interno della funzione Println abbiamo myFunc(5, 7), e il programma sopra produce l'output 47, che deriva dai calcoli eseguiti dalla funzione myFunc(). Questo dimostra che l'istruzione return restituisce dati specifici al punto in cui la funzione è stata invocata. Inoltre, è possibile memorizzare i dati restituiti in una variabile:
index.go
12var returnedValue int = myFunc(5, 7) fmt.Println(returnedValue) // Outputs '47'
Nota
Una funzione non richiede parametri per includere un'istruzione
return.
Una funzione non può contenere alcun codice dopo un'istruzione return e, generalmente, Go non consente più istruzioni return:
index.go
1234567891011// Function exits after the first return statement it encounters func exampleOne() int { return 1 return 2 // Will be ignored } // There cannot be any code after a return statement func exampleTwo() int { return 1 fmt.Println() // Error here }
Tuttavia, è possibile utilizzare l'istruzione return all'interno di strutture condizionali per restituire selettivamente dei valori:
index.go
123456789101112131415package main import "fmt" func myFunc() string { if(1 > 2) { return "1 is greater than 2" } else { return "2 is greater than 1" } } func main() { fmt.Println(myFunc()) }
Grazie per i tuoi commenti!