در زبان Go، دو نوع ساختار (struct) پرکاربرد داریم که بسته به نیاز، استفاده از یکی نسبت به دیگری بهتره. اینجا با یه مثال واقعی از دنیای API برات توضیح میدیم که چرا و کجا از هر کدوم استفاده کنیم:
🔸 ساختار نامدار (Named Struct)
ساختاری با اسم مشخص که میتونه چندینبار در بخشهای مختلف پروژه استفاده بشه. برای مدلسازی دیتاهایی مثل کاربر، محصول یا درخواست لاگین خیلی مفیده.
✅ مزایا:
• قابل استفاده مجدد
• خوانایی بالا
• سازماندهی بهتر کد
type LoginRequest struct {
Username string `json:"username"`
Password string `json:"password"`
}
func LoginHandler(c *gin.Context) {
var req LoginRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(400, gin.H{"error": "invalid request"})
return
}
// استفاده از req.Username و req.Password
}🔸 ساختار بینام (Anonymous Struct)
وقتی فقط یکبار قراره از یه ساختار ساده استفاده کنی و نمیخوای struct جداگانه تعریف کنی، این روش خیلی سریع و کارآمده. مخصوصاً توی پارس کردن سریع کوئریها یا تستهای سبک.
✅ مزایا:
• کد سریعتر و تمیزتر
• بدون نیاز به تعریف نوع جدا
• مناسب برای موارد موقتی یا کوچک
func SearchHandler(c *gin.Context) {
var query struct {
Q string
form:"q"Page int
form:"page"}
if err := c.ShouldBindQuery(&query); err != nil {
c.JSON(400, gin.H{"error": "bad query"})
return
}
// استفاده از query.Q و query.Page
}
🎯 جمعبندی:
اگر ساختار رو در چند جای پروژه استفاده میکنی ➡️ ساختار نامدار (Named Struct)
اگر فقط برای یکبار یا در یک فانکشن خاص استفاده داری ➡️ ساختار بینام (Anonymous Struct)
#GoLang #Struct #Gin #API #Backend #برنامهنویسی #گو
☕️Telegram | Website | Discord