سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ علی صادق الوعد
تعریف enum
جامعه گولنگ ایجاد شده در ۱۱ خرداد ۱۴۰۲

سلام و وقت بخیر

من enum رو از دیتابیس میشناسم که یعنی متغییری که مقدارش باید یکی ار مقادیری باشه که از قبل براش تعریف شده

ولی چیزی که تو این جلسه توضیح داده شد در واقع 6 تا کانستنت بودن که به صورت گروهی تعریف شدن!

درود وقت بخیر

در واقع توی گولنگ (Golang)، مفهوم Enum یا enumeration با const پیاده سازی میشه. این یعنی که Golang از ساختار داده‌های Enum برای تعریف یک مجموعه ثابت از مقادیر استفاده نمی‌کنه. در عوض، Golang از استفاده از ثوابت (constants) یا متغیرهای تایپ‌شده (typed variables) برای ایجاد مقادیر مجموعه‌ای استفاده می‌کند.

برای مثال، فرض کنید که ما نیاز داریم به تعریف یک مجموعه‌ای از رنگ‌ها. در Golang، می‌توانیم از ثوابت استفاده کنیم:

const (
  Red  = "red"
  Green = "green"
  Blue = "blue"
)

در این مثال، ما سه ثابت تعریف کردیم که هر کدوم رنگ مورد نظر را نشان میدن. این روش مشابه با استفاده از Enum در برخی از زبان‌های دیگر است.

  • مثلا توی زبان C# که Enum رو به طور پیشفرض پشتیبانی می‌کنه.
enum Color
{
    Red, # 0
    Green, # 1
    Blue # 2
}
# enum Color
# {
#    Red = "Red",
#    Green = "Green",
#    Blue = "Blue"
# }
Color myColor = Color.Red;
if (myColor == Color.Red)
{
    Console.WriteLine("The color is red!");
}

توی زبان C#، مقادیر داخلی یک Enum بصورت پیشفرض به صورت صحیح ترتیبی (sequential) هست و از عدد صفر شروع میشه. در مثال قبل، ما Enum "Color" را تعریف کرده‌ایم و سه مقدار "Red"، "Green" و "Blue" را به عنوان مقادیر ممکن در این Enum داخلی قرار دادیم (که اینجا هم میشه همین کارو کرد)

  • مثلا توی پایتون هم همچنین مسئله ای وجود داره ( یعنی به وسیله class variable‌ها ما مفهوم enum رو مشخص میکردیم ولی توی نسخه‌های جدید‌تر تا حدودی این ساختار داده پیاده سازی شده )
from enum import Enum
class Colours(Enum):
  Red  = "red"
  Green = "green"
  Blue = "blue"
colour = Colours.Red
print(today)  # output : Colours.Red = red

امیدوارم این مسئله براتون حل شده باشه

موفق باشید?

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