💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ محمد حیدری
سوال در مورد anonymous struct
جامعه گولنگ ایجاد شده در ۱۷ خرداد ۱۴۰۲

سلام، با استفاده کردن از anonymous struct هم یک نمونه از structمون ساخته میشه یا کلا نسبت به 5 روش گفته شده در ویدیو فرق میکنه؟

و ممنون میشم اگه یه توضیح مختصری راجب بهش بدین و بگید که بیشتر کجاها ازش استفاده میشه.

سلام وقت بخیر

ساختارهای ناشناس (anonymous structs) ، ساختاری هستش که بدون تعریف نام ایجاد میشه. به جای اینکه برای اون اسم مشخص کنید، میتونید مستقیماً یک anonymous structs تعریف کنید.


package main
import "fmt"
func main() {
  person := struct {
    name string
    age int
  }{
    name: "John",
    age: 30,
  }
  fmt.Println(person.name)
  fmt.Println(person.age)
}


در این مثال، یک anonymous structs با دو فیلد `name` و `age` داریم و مقدار دهیش کردیم. بعد میتونیم به صورت مستقیم از فیلدهای anonymous structs استفاده کنیم.

استفاده از anonymous structs در صورتی کاربرد داره که نیاز به struct‌های ( کوچک و موقت ) باشه و همچنین نیازی به تعریف نام و مقداردهی اولیه نداشته باشه.

مثلا :

- تعریف یک struct کوچک برای استفاده موقت توی data structure پیچیده‌تر.

b62b-Screenshot 2023-06-09 at 23.37.09.png- تعریف Data Structure ساده در دستورات کنترلی مانند channels و goroutines.

a2ee-Screenshot 2023-06-09 at 23.36.01.png- استفاده در توابعی که نیاز به return کردن همزمان چند value دارن

4799-Screenshot 2023-06-09 at 23.34.36.pngاستفاده از این نوع sturct بسته به شرایط و نیازهای خاص میتونن منجر به کدی کوتاه‌تر، خواناتر و بدون نیاز به تعریف اضافی بشن. با این حال توجه کنید که استفاده زیاد از anonymous structs و توابع پیچیده‌تر، خوانایی و قابل فهمی کد را کاهش میده.

موفق باشید ?

بهترین پاسخ
Reza Mobaraki ۱۸ خرداد ۱۴۰۲، ۱۶:۰۲

ممنون از توضیحات خوبتون

محمد حیدری ۱۹ خرداد ۱۴۰۲، ۲۰:۴۶