دیدگاه ها
نیازمند احراز هویت
یک ماه پیش
با نوع داده struct آشنا میشیم و یاد میگیریم چطور همانند زبان های برنامه نویسی شئ گرا با استفاده از struct اشیا را مدلسازی کنیم.
در زبان Golang، نوع دادهی struct یک نوع دادهی ترکیبی (composite type) است که برای گروهبندی مجموعهای از مقادیر مرتبط با هم تحت یک نام استفاده میشود. این مقادیر که فیلدهای (fields) یک struct نامیده میشوند، میتوانند انواع دادهای مختلفی داشته باشند.
ساختار کلی یک struct به شکل زیر است:
برای مثال میتونیم یک struct با نام Person تعریف کنیم که دارای دو فیلد Age و Name است:
در مثال بالا ابتدا یک struct با نام Person تعریف کردیم که دارای دو فیلد با نام های Name و Age است. یک متغیر با نام x از نوع Person تعریف کردیم و یکبار مقدار صفر (zero value) آن را چاپ کردیم و سپس هرکدام از فیلد ها را جداگانه مقداردهی و چاپ کردیم.
مقدار صفر (zero value) یک struct برابر با مقدار صفر فیلدهای آن خواهد بود. متغیر بالا را همچنین میتونیم به صورت زیر مقدار دهی کنیم:
یک struct را میتوان بدون تخصیص دادن نام ایجاد کرد, به این حالت anonymouse struct میگویند. کافیست تعریف struct و تخصیص آن به یک متغیر را همزمان انجام دهیم.
دقت کنید anonymose struct قابلیت استفاده مجدد ندارد بدین معنی که اگر بخواهیم متغیر دیگری را با همین دیتا تایپ تعریف کنیم باید دوباره ساختار struct را تکرار کنیم!
به دو صورت میتوان از struct به صورت تودرتو استفاده کرد:
یک struct میتواند چندین فیلد داشته باشد و هرکدام از این فیلدها نیز میتواند از نوع struct باشد.
در گولنگ شما میتونید به هر type که تعریف کرده اید متد اضافه کنید و struct هم به همین صورت هست. مثال قبل رو با استفاده از متد میتوان به صورت زیر بازنویسی کرد:
در مثال بالا یک متد با نام Print به UsersCollection اضافه کردیم. این متد آیتم های این struct را در صفحه چاپ میکنم.