في لغة Golang ، يُسمح لك بإرجاع قيم متعددة من دالة، باستخدام عبارة 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