زبان برنامهنویسی گو/تعریف و استفاده از توابع
مقدمه
[ویرایش]توابع (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 هستند که کد شما را منظم، قابل خواندن و قابل نگهداری میکنند. با تعریف مناسب پارامترها و مقادیر بازگشتی میتوانید رفتارهای پیچیده و کاربردی را به سادگی پیاده کنید.