W języku Golang można zwracać wiele wartości z funkcji, korzystając z polecenia return. Innymi słowy, w funkcji polecenie return może zwracać wiele wartości. Typy wartości zwracanych są takie same jak typy parametrów określonych na liście parametrów.

Składnia:
func function_name(parameter_list)(return_type_list){
// code...
}
Tam:
- function_name : Jest to nazwa funkcji.
- lista-parametrów : Zawiera nazwy i typy parametrów funkcji.
- return_type_list : Opcjonalny, zawiera typy wartości zwracanych przez funkcję. Jeśli w swojej funkcji używasz return_type, musisz użyć w niej polecenia return.
Na przykład:
// 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)
}
Wynik:
Result is: 2
Result is: 8
Result is: 6
Podaj nazwę wartości zwracanej
W języku Go można podawać nazwy wartości zwracanych. Możesz używać tych samych nazw zmiennych również w swoim kodzie. Nie ma potrzeby zapisywania tych nazw za pomocą polecenia return , ponieważ kompilator Go automatycznie zrozumie, że zmienne te powinny zostać zachowane. A typem zwrotu jest tzw. minimalny zwrot. Zwrócenie wartości minimalnej zmniejsza duplikację w programie.
Składnia:
func function_name(para1, para2 int)(name1 int, name2 int){
// code...
}
hoặc
func function_name(para1, para2 int)(name1, name2 int){
// code...
}
Tutaj name1 i name2 to nazwy wartości zwracanej, a para1 i para2 to parametry funkcji.
Na przykład:
// 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)
}
Wynik:
Area of the rectangle is: 8
Area of the square is: 4