مقادیر بازگشتی نامدار
مقادیر بازگشتی نامدار و naked return در توابع Go.
مقدار بازگشتی نامدار
در Go میتوانید به مقادیر بازگشتی نام بدهید — مثل پارامترها:
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return ← naked return!
}
naked return چیست؟
وقتی مقادیر بازگشتی نامدار باشند، دستور return خالی (naked) مقادیر فعلی آن متغیرها را برمیگرداند:
func rectangleProps(w, h float64) (area, perimeter float64) {
area = w * h
perimeter = 2 * (w + h)
return ← area و perimeter برگردانده میشوند
}
مزایا
- در توابع کوتاه، خوانایی را بالا میبرد
- نامها مستند عمل میکنند — مشخص است چه چیزی برمیگردد
- در توابع با defer و خطا مفید است
مثال: الگوی رایج خطا
func parse(s string) (n int, err error) {
n, err = strconv.Atoi(s)
if err != nil {
n = 0 ← مقدار پیشفرض
}
return
}
از naked return در توابع بلند استفاده نکنید — خوانایی را پایین میآورد! بهترین کاربرد: توابع کوتاه چندخطی.
مقایسه
// بدون نام
func add(a, b int) (int, int) {
return a, b
}
// با نام
func add(a, b int) (x, y int) {
x = a
y = b
return
}
این مبحث بخشی از دوره آموزش کامل گو است.