English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In Go, è permesso utilizzare l'istruzione return per ritornare più valori da unafunzioneRitorna più valori. In altre parole, all'interno della funzione, una singola istruzione return può ritornare più valori. Il tipo dei valori di ritorno è simile al tipo dei parametri definiti nella lista dei parametri.
Sintassi:
func function_name(parameter_list)(return_type_list){ // code... }
Ecco,
function_name:Èfunzionedel nome.
parameter-list:Essa contiene il nome e il tipo dei parametri della funzione.
return_type_list:Questo è opzionale e contiene il tipo di valore restituito dalla funzione. Se si utilizza return_type nella funzione, deve essere utilizzato anche il comando return.
package main import "fmt" // myfunc restituisce 3 valori di tipo int func myfunc(p, q int) (int, int, int) { return p - q, p * q, p + q } func main() { // Assegnare i valori di ritorno a, tre variabili diverse var myvar1, myvar2, myvar3 = myfunc(4, 2) // Visualizzare il valore fmt.Printf("Il risultato è: %d", myvar1) fmt.Printf("\nIl risultato è: %d", myvar2) fmt.Printf("\nIl risultato è: %d", myvar3) }
Output:
Il risultato è: 2 Il risultato è: 8 Il risultato è: 6
In Go, è consentito assegnare nomi ai valori di ritorno. Puoi anche utilizzare questi nomi nei tuoi codici. Non è necessario scrivere questi nomi con la frase return, perché il compilatore Go capisce automaticamente che questi valori devono essere restituiti. Questo tipo di restituzione è chiamato restituzione nuda. La restituzione semplice riduce la ripetizione nel codice.
Sintassi:
func function_name(para1, para2 int)(name1 int, name2 int){ // code... } o func function_name(para1, para2 int)(name1, name2 int){ // code... }
Ecco,name1ename2Il nome del valore di ritorno è, mentre para1 e para2 sono i parametri della funzione.
package main import "fmt" // myfunc restituisce 2 valori di tipo int // Ecco il nome del valore di ritorno // È rectangle and square func myfunc(p, q int) (rectangle int, square int) { rectangle = p * q square = p * p return } func main() { // Assegnare i valori di ritorno a // Due variabili diverse var area1, area2 = myfunc(2, 4) fmt.Printf("L'area del rettangolo è: %d", area1) fmt.Printf("\nL'area del quadrato è: %d", area2) }
Output:
L'area del rettangolo è: 8 L'area quadrata è: 4