پرش به محتوا

زبان برنامه‌نویسی گو/تعریف و استفاده از توابع

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

مقدمه

[ویرایش]

توابع (Functions) در زبان برنامه‌نویسی Go، بلوک‌هایی از کد هستند که برای انجام کارهای مشخص تعریف می‌شوند و می‌توانند چندین بار فراخوانی شوند. استفاده از توابع به سازمان‌دهی بهتر کد، جلوگیری از تکرار و افزایش خوانایی کمک می‌کند.

تعریف تابع

[ویرایش]

تابع در Go با کلیدواژه func تعریف می‌شود. ساختار کلی تابع به شکل زیر است:

func نام_تابع(پارامترها) بازگشتی {
    // بدنه تابع
}

- نام_تابع: نام تابع که باید با حرف کوچک یا بزرگ شروع شود. توابع با نام بزرگ قابل دسترسی از بسته‌های دیگر هستند (public). - پارامترها: لیستی از ورودی‌های تابع به صورت نام و نوع (اختیاری). - بازگشتی: نوع داده‌ای که تابع بازمی‌گرداند (اختیاری).

مثال‌های تعریف و استفاده از تابع

[ویرایش]

تعریف تابع ساده بدون ورودی و خروجی:

func greet() {
    println("سلام دنیا!")
}

فراخوانی تابع:

func main() {
    greet()
}

تعریف تابع با پارامتر ورودی:

func greetName(name string) {
    println("سلام، " + name + "!")
}

فراخوانی تابع با آرگومان:

func main() {
    greetName("علی")
}

تعریف تابع با مقدار بازگشتی:

func add(a int, b int) int {
    return a + b
}

استفاده از مقدار بازگشتی:

func main() {
    sum := add(3, 5)
    println("مجموع:", sum)
}

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

[ویرایش]

گو اجازه می‌دهد توابع چند مقدار به صورت همزمان بازگردانند:

func swap(a, b string) (string, string) {
    return b, a
}

فراخوانی تابع چند خروجی:

func main() {
    x, y := swap("سلام", "دنیا")
    println(x, y) // خروجی: دنیا سلام
}

توابع نامدار و ناشناس (Anonymous Functions)

[ویرایش]

می‌توان توابع را به صورت ناشناس تعریف کرد و در متغیر ذخیره یا مستقیم فراخوانی کرد:

// تابع ناشناس ذخیره شده در متغیر
var sayHello = func(name string) {
    println("سلام، " + name)
}

func main() {
    sayHello("علی")
}

نکات مهم

[ویرایش]
  • نام تابع باید با حروف لاتین و مطابق قواعد نام‌گذاری باشد.
  • توابع می‌توانند پارامتر و مقدار بازگشتی نداشته باشند.
  • توابع در بسته‌ها به عنوان واحدهای جداگانه و قابل استفاده مجدد طراحی می‌شوند.
  • می‌توان توابع را در توابع دیگر نیز تعریف کرد (Nested Functions) اما معمولاً کمتر استفاده می‌شود.

جمع‌بندی

[ویرایش]

توابع از مهم‌ترین بخش‌های زبان Go هستند که کد شما را منظم، قابل خواندن و قابل نگهداری می‌کنند. با تعریف مناسب پارامترها و مقادیر بازگشتی می‌توانید رفتارهای پیچیده و کاربردی را به سادگی پیاده کنید.