এনওপ্সের ওওপি-র সাথে কোনও সম্পর্ক নেই এবং জাভাস্ক্রিপ্টের এনাম নেই। পরিবর্তে, যখনই মানগুলির একটি নির্দিষ্ট সেটের মধ্যে পছন্দ থাকে তখন এনামগুলি ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি বুলিয়ান সত্য এবং মিথ্যা মধ্যে একটি পছন্দ, যা হিসাবে প্রয়োগ করা যেতে পারে enum Bool { False, True }
। একটি জিইউআই লাইব্রেরিতে, আমাদের সারিবদ্ধকরণের জন্য একটি এনাম থাকতে পারে:enum HAlignment { LEFT = -1, CENTER = 0, RIGHT = 1 }
।
এটি এনাম কীভাবে কার্যকর করা হয় তা অপ্রাসঙ্গিক, গুরুত্বপূর্ণ অংশটি হ'ল প্রতিটি সম্ভাব্য মান আলাদা। অনেক ভাষা এনামগুলির জন্য পূর্ণসংখ্যার ব্যবহার করে, যদিও কিছু জাভা পছন্দসই বস্তু সমর্থন করে।
এখন অবধি, আমরা ঠিক পাশাপাশি ধ্রুবক ব্যবহার করতে পারতাম const int LEFT = -1, CENTER = 0, RIGHT = 1
। তবে, একটি সংকলক জানে যে এনাম মানগুলি একত্রে অন্তর্ভুক্ত। সুতরাং যখন আমি এনাম মানগুলিতে স্যুইচ করি switch(value) {case LEFT: ...; case RIGHT: ...;}
, সংকলক আমাকে সতর্ক করতে পারে যে আমি ভুলে গেছিCENTER
। এটি একটি যথেষ্ট সময় সাশ্রয়কারী হতে পারে। এনামগুলি ব্যতীত বা সুইচ-কেস নির্মাণ ছাড়া ভাষাগুলিতে এটি ভিজিটর প্যাটার্নের সাথে সিমুলেটেড করা যায়, যদিও এটি স্ট্যাটিক টাইপিংয়ের উপস্থিতিতে আরও সহায়ক more
অন্য সুবিধাটি হ'ল এনামগুলিকে পৃথক প্রকার হিসাবে বিবেচনা করা যেতে পারে। যেমন আমি ঘোষণা করতে পারি যে একটি পদ্ধতি গ্রহণ করে methodHAlignment
কোনও পূর্ণসংখ্যার চেয়ে পরামিতি । কোডটি তখন তিনটি HAlignment মানগুলির মধ্যে একটি ব্যতীত আমি যদি কিছু সরবরাহ করি তবে সংকলন করতে ব্যর্থ হবে। তবে, সি এর এনামগুলি ভালভাবে এনক্যাপসুলেটেড হয় না এবং এনাম ধ্রুবকগুলি পূর্ণসংখ্যার সাথে বিনিময়যোগ্যভাবে ব্যবহার করা যায়। অন্যান্য ভাষাগুলি এখানে কঠোর।
জাভাস্ক্রিপ্টে, আমরা এই সুবিধাগুলির কোনওটিই পাই না। প্রদত্ত উদাহরণ একটি এনাম হিসাবে বিবেচিত একটি অবজেক্টকে ঘোষণা করে। এটির প্রোগ্রামারটির কিছু সুবিধা রয়েছে, যেমন এটি ডকুমেন্টেশনকে সহজ করে তোলে, সমস্ত "ধ্রুবককে" একক বস্তুতে গ্রুপ করে,…। যাইহোক, এটি কেবল একটি কনভেনশন যে এই জাতীয় বস্তুটি এনামের মতো।
এখানে মূল বিষয়টি হ'ল এইচটিএমএলটিতে কেবলমাত্র একটি সীমাবদ্ধ এবং পরিচিত ট্যাগ রয়েছে। আপনি এইচটিএমএল 5 স্পেসিফিকেশনটি দেখতে পারেন এবং এই কোডটির নামগুলি আপনার কোডে এনাম হিসাবে রাখতে পারেন এবং তাই <blink>
আপনার প্রোগ্রামে কোনও ট্যাগ ছিঁড়ে ফেলা আরও কঠিন করে তোলে । এই জ্ঞানটি এক জায়গায় এনকোড করা ভাল যে আপনার কোডটি বিশেষ স্ট্রিং লিটারেলগুলি (বা আরও খারাপ, যাদু সংখ্যার) সাথে লিটার করে দেওয়া।