مقادیر بازگشتی نام‌دار

مقادیر بازگشتی نام‌دار و 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 برگردانده می‌شوند
}

مزایا

مثال: الگوی رایج خطا

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
}

این مبحث بخشی از دوره آموزش کامل گو است.

ابزارهای مرتبط