TGViewer
کداکسپلور | CodeExplore کداکسپلور | CodeExplore @codeexplore · 9.2K subscribers
Post #3787 2.03K
🚀توضیح Closure Function در Go — ابزار قدرتمند برای نگه‌داری وضعیت (State)
در زبان Go، توابع می‌تونن داخل خودشون توابع دیگه تعریف و برگردونن. اگر اون تابع داخلی به متغیرهای خارج از خودش دسترسی داشته باشه، بهش می‌گیم Closure.

یعنی توابعی که محیط اطرافشون رو به‌خاطر می‌سپارن حتی بعد از خروج از اون محیط.

✅ مثال واقعی: شمارنده با Closure
func counter() func() int {
count := 0
return func() int {
count++
return count
}
}

func main() {
c := counter()
fmt.Println(c()) // 1
fmt.Println(c()) // 2
fmt.Println(c()) // 3
}


📌 هر بار که تابع ()c اجرا می‌شه، مقدار count رو یکی زیاد می‌کنه، چون اون تابع داخلی به count دسترسی داره و وضعیتش رو حفظ کرده.

🎯 کاربردهای واقعی Closure در Go:
✅ نگه‌داری وضعیت بدون استفاده از struct
✅ تولید توابع سفارشی‌شده با داده‌ی خاص
✅ ساختن توابع داینامیک مثل Middleware، Filter و Validator
✅ پیاده‌سازی رفتارهای فانکشنال (مثل map، reduce، chain)

🧠 چرا مهمه؟
Closureها بهت این امکان رو می‌دن که کد تمیزتر، ماژولارتر و با قابلیت ترکیب‌پذیری بالا بنویسی — بدون نیاز به تعریف نوع یا ساختارهای پیچیده.


#GoLang #Struct #Gin #API #Backend #برنامه‌نویسی #گو
☕️Telegram | Website | Discord
  • ❤‍🔥 5
  • 💔 3
  • ⚡ 1
  • 🔥 1
More from @codeexplore
  1. Oct 8, 2026🙂😂 #fun ☕️ Telegram | Website | Discord
  2. Oct 8, 2026برای اولین بار در تاریخ CVE ها یک عدد 6 رقمی گرفتند! و این عمق فاجعه آسیب پذیری های پیدا ش…
  3. Oct 7, 2026‏Graphify یه ابزار اوپن سورسه که باهاش میتونید ببینید بخشای مختلف پروژه چطور به هم وصل…
  4. Oct 5, 2026😂😮 #fun ☕️ Telegram | Website | Discord
  5. Oct 5, 2026‏Vengeance UI مجموعه‌ای از Component های اوپن سورس انیمیشنی پر استفاده رو با افکتای مخ…
  6. Oct 4, 2026پشت هر شخصیت برنامه‌نویس، سال ها یادگیری، تلاش و آزمون‌وخطا وجود داره. ☕️ Telegram | Websi…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →