Nel linguaggio Golang è possibile restituire più valori da una funzione, utilizzando l'istruzione return. In altre parole, in una funzione, un'istruzione return può restituire più valori. I tipi dei valori restituiti sono gli stessi dei tipi dei parametri specificati nell'elenco dei parametri.

Sintassi:
func function_name(parameter_list)(return_type_list){
// code...
}
Lì dentro:
- function_name : Questo è il nome della funzione.
- parameter-list : contiene i nomi e i tipi dei parametri della funzione.
- return_type_list : facoltativo e contiene i tipi di valori restituiti dalla funzione. Se si utilizza return_type nella funzione, è necessario utilizzare l'istruzione return nella funzione.
Per esempio:
// Chương trình Go minh họa
// cách hàm trả về nhiều giá trị
package main
import "fmt"
// myfunc trả về 3 giá trị của kiểu int
func myfunc(p, q int)(int, int, int ){
return p - q, p * q, p + q
}
// Phương thức chính
func main() {
// Giá trị trả về được gắn vào
// 3 biến khác nhau
var myvar1, myvar2, myvar3 = myfunc(4, 2)
// Hiện giá trị
fmt.Printf("Result is: %d", myvar1 )
fmt.Printf("\nResult is: %d", myvar2)
fmt.Printf("\nResult is: %d", myvar3)
}
Risultato:
Result is: 2
Result is: 8
Result is: 6
Assegna un nome al valore di ritorno
Nel linguaggio Go è consentito specificare nomi per i valori restituiti. Puoi usare questi nomi di variabili anche nel tuo codice. Non è necessario scrivere questi nomi con un'istruzione return perché il compilatore Go capirà automaticamente che queste variabili devono essere mantenute. E il tipo di ritorno è chiamato ritorno minimo. Restituendo minimal si riducono le duplicazioni nel programma.
Sintassi:
func function_name(para1, para2 int)(name1 int, name2 int){
// code...
}
hoặc
func function_name(para1, para2 int)(name1, name2 int){
// code...
}
Qui, name1 e name2 sono i nomi del valore restituito e para1 e para2 sono i parametri della funzione.
Per esempio:
// Minh họa chương trình Go
// cách đặt tên cho giá trị trả về
package main
import "fmt"
// myfunc trả về 2 giá trị của kiểu int
// đây là tên giá trị trả về:
// rectangle và square
func myfunc(p, q int)( rectangle int, square int ){
rectangle = p*q
square = p*p
return
}
func main() {
// Giá trị trả về được gán cho
// hai biến khác nhau
var area1, area2 = myfunc(2, 4)
// Hiện giá trị
fmt.Printf("Area of the rectangle is: %d", area1 )
fmt.Printf("\nArea of the square is: %d", area2)
}
Risultato:
Area of the rectangle is: 8
Area of the square is: 4