پرش به محتوا

زبان برنامه‌نویسی گو/آرگومان‌ها و مقادیر بازگشتی

ویکی‎کتاب، کتابخانهٔ آزاد

زبان برنامه‌نویسی گو: آرگومان‌ها و مقادیر بازگشتی

[ویرایش]

توابع در زبان گو برای دریافت ورودی (آرگومان‌ها) و برگرداندن خروجی (مقادیر بازگشتی) استفاده می‌شوند. این قابلیت باعث می‌شود بتوانیم بخش‌های مختلف برنامه را ماژولار، قابل‌استفاده مجدد و خوانا طراحی کنیم.

آرگومان‌ها (Arguments)

[ویرایش]

وقتی یک تابع تعریف می‌کنیم، می‌توانیم در پرانتز آن متغیرهایی به‌عنوان پارامتر مشخص کنیم. هنگام فراخوانی تابع، باید مقادیر مربوط به این پارامترها را ارسال کنیم.

package main
import "fmt"

func greet(name string, age int) {
    fmt.Println("سلام", name, "شما", age, "ساله هستید.")
}

func main() {
    greet("علی", 25)
    greet("سارا", 30)
}

در مثال بالا:

  • تابع greet دو آرگومان دارد: یک رشته (string) و یک عدد صحیح (int).
  • هنگام فراخوانی تابع در main، مقادیر "علی", 25 و "سارا", 30 جایگزین این پارامترها می‌شوند.

مقادیر بازگشتی (Return Values)

[ویرایش]

توابع می‌توانند یک یا چند مقدار بازگردانند. برای این کار از کلمهٔ کلیدی return استفاده می‌شود.

package main
import "fmt"

func add(x int, y int) int {
    return x + y
}

func main() {
    result := add(5, 7)
    fmt.Println("نتیجه جمع:", result)
}

در این مثال:

  • تابع add دو عدد صحیح دریافت می‌کند.
  • خروجی تابع یک مقدار از نوع int است که حاصل جمع آرگومان‌هاست.

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

[ویرایش]

یکی از ویژگی‌های قدرتمند زبان گو، امکان بازگرداندن چند مقدار از یک تابع است.

package main
import "fmt"

func divide(a int, b int) (int, int) {
    quotient := a / b
    remainder := a % b
    return quotient, remainder
}

func main() {
    q, r := divide(17, 5)
    fmt.Println("خارج قسمت:", q)
    fmt.Println("باقی‌مانده:", r)
}

در این کد:

  • تابع divide دو عدد می‌گیرد و هم خارج‌قسمت و هم باقی‌مانده را بازمی‌گرداند.
  • در قسمت main، مقادیر بازگشتی در دو متغیر q و r ذخیره می‌شوند.

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

[ویرایش]

در گو می‌توان نام متغیرهای بازگشتی را داخل تعریف تابع مشخص کرد. این کار باعث می‌شود کد خواناتر شود.

package main
import "fmt"

func rectangle(w int, h int) (area int, perimeter int) {
    area = w * h
    perimeter = 2 * (w + h)
    return
}

func main() {
    a, p := rectangle(5, 3)
    fmt.Println("مساحت:", a)
    fmt.Println("محیط:", p)
}

اینجا:

  • مقادیر بازگشتی (area, perimeter) داخل تعریف تابع نام‌گذاری شده‌اند.
  • در پایان فقط return بدون مقدار نوشته می‌شود، چون گو خودش این متغیرها را بازمی‌گرداند.

جمع‌بندی

[ویرایش]
  • با آرگومان‌ها می‌توان به توابع ورودی داد.
  • با مقادیر بازگشتی می‌توان خروجی یک تابع را گرفت.
  • گو اجازه بازگرداندن چند مقدار را می‌دهد.
  • استفاده از نام‌گذاری برای مقادیر بازگشتی باعث شفاف‌تر شدن کد می‌شود.