TGViewer
کداکسپلور | CodeExplore کداکسپلور | CodeExplore @codeexplore · 9.2K subscribers
Post #3968 1.65K
کلمه کلیدی Defer چیه؟
کلمه کلیدی Defer یه کلمه کلیدی تو Go هست که باعث می‌شه یه تابع بعد از اتمام تابع فعلی اجرا بشه. این یعنی وقتی return زدی یا اروری اومد، اون تابع deferred آخر کار اجرا می‌شه.

✨ چرا از defer استفاده کنیم؟
کلمه کلیدی defer خیلی به درد کارایی مثل اینا می‌خوره:

✅ بستن فایل‌ها (file.Close())
✅ بستن کانکشن‌ها یا منابع شبکه
✅ آزاد کردن lockها (مثل mutex.Unlock())
✅ گرفتن log یا اندازه‌گیری زمان اجرا

مثلاً:

func readFile() {
f, _ := os.Open("data.txt")
defer f.Close()

// ادامه‌ی کار با فایل...
}

🧠 چطوری کار می‌کنه؟
اگه چند تا defer پشت‌سرهم بنویسی، به صورت LIFO اجرا می‌شن؛ یعنی آخری اول اجرا می‌شه.

defer fmt.Println("A")
defer fmt.Println("B")
defer fmt.Println("C")

خروجی:

C
B
A

⚠️ نکته‌ی مهم
تو لوپ‌هایی که زیاد تکرار می‌شن، زیاد از defer استفاده نکن، چون ممکنه کارایی بیاد پایین. به‌جاش مستقیم اون تابع رو همون موقع صدا بزن.

🧹 جمع‌بندی
‏defer ابزار تمیزکاری تو Go هست. کمک می‌کنه کدت مرتب، ایمن و بدون نشتی منابع باشه. مخصوصا تو پروژه‌های واقعی خیلی کاربردیه!

اگه تجربه‌ کار با defer داری، تو کامنتا بنویس 👇🏻

#golang #defer
☕️Telegram | Website | Discord
  • 🔥 8
  • ⚡ 2
More from @codeexplore
  1. Oct 8, 2026🙂😂 #fun ☕️ Telegram | Website | Discord
  2. Oct 8, 2026برای اولین بار در تاریخ CVE ها یک عدد 6 رقمی گرفتند! و این عمق فاجعه آسیب پذیری های پیدا ش…
  3. Oct 7, 2026کداکسپلور | CodeExplore pinned a photo
  4. Oct 7, 2026🤖 Routy؛ مدیریت روزت، مستقیم داخل تلگرام تسک‌هات رو بساز، عادت‌هات رو ثبت کن، یادآوری بگی…
  5. Oct 7, 2026Post #4854
  6. Oct 7, 2026‏Graphify یه ابزار اوپن سورسه که باهاش میتونید ببینید بخشای مختلف پروژه چطور به هم وصل…
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 →