В языке Golang разрешено возвращать несколько значений из функции с помощью оператора return. Другими словами, в функции оператор return может возвращать несколько значений. Типы возвращаемых значений совпадают с типами параметров, указанными в списке параметров.

Синтаксис:
func function_name(parameter_list)(return_type_list){
// code...
}
Там:
- function_name : Это имя функции.
- список-параметров : Содержит имена и типы параметров функции.
- return_type_list : Необязательный параметр, содержащий типы значений, возвращаемых функцией. Если вы используете return_type в своей функции, то вам необходимо использовать оператор return в своей функции.
Например:
// 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)
}
Результат:
Result is: 2
Result is: 8
Result is: 6
Назовите возвращаемое значение
В языке Go разрешено указывать имена для возвращаемых значений. И вы также можете использовать эти имена переменных в своем коде. Нет необходимости писать эти имена с оператором return , поскольку компилятор Go автоматически поймет, что эти переменные следует сохранить. А тип возврата называется минимальным возвратом. Возврат минимума сокращает дублирование в вашей программе.
Синтаксис:
func function_name(para1, para2 int)(name1 int, name2 int){
// code...
}
hoặc
func function_name(para1, para2 int)(name1, name2 int){
// code...
}
Здесь name1 и name2 — имена возвращаемого значения, а para1 и para2 — параметры функции.
Например:
// 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)
}
Результат:
Area of the rectangle is: 8
Area of the square is: 4