যখনই আপনাকে কিছু if / elsif
ব্যবহার করতে হবে বিবৃতি আপনি পরিবর্তে একটি রুবি কেস বিবৃতি ব্যবহার বিবেচনা করতে পারেন. এই পোস্টে, আপনি কয়েকটি ভিন্ন ব্যবহারের ক্ষেত্রে শিখবেন এবং কীভাবে এটি আসলেই হুডের অধীনে কাজ করে।
দ্রষ্টব্য:অন্যান্য প্রোগ্রামিং ভাষায় এটি একটি সুইচ নামে পরিচিত বিবৃতি।
রুবিতে একটি কেস স্টেটমেন্টের উপাদান:
কীওয়ার্ড | বর্ণনা |
---|---|
কেস | একটি কেস স্টেটমেন্ট সংজ্ঞা শুরু করে৷ আপনি যে ভেরিয়েবলের সাথে কাজ করতে যাচ্ছেন সেটি গ্রহণ করে৷ | ৷
কখন | প্রতিটি শর্ত যা মেলে তা এক যখন বিবৃতি৷ | ৷
অন্যথায় | যদি কিছুই মেলে না তাহলে এটি করুন৷ ঐচ্ছিক। |
রুবি কেস এবং রেঞ্জ
case
বিবৃতিটি প্রথম দর্শনে প্রদর্শিত হতে পারে তার চেয়ে বেশি নমনীয়। আসুন একটি উদাহরণ দেখি যেখানে একটি মান কোন পরিসরে পড়ে তার উপর নির্ভর করে আমরা কিছু বার্তা প্রিন্ট করতে চাই৷
আমি মনে করি এই কোডটি if / elsif
এর তুলনায় বেশ মার্জিত সংস্করণ দেখতে কেমন হবে৷
রুবি কেস এবং রেজেক্স
এছাড়াও আপনি আপনার when
হিসাবে রেগুলার এক্সপ্রেশন ব্যবহার করতে পারেন অবস্থা নিম্নলিখিত উদাহরণে আমাদের একটি serial_code
আছে একটি প্রাথমিক চিঠি যা আমাদের বলে যে এই পণ্যটি খাওয়া কতটা ঝুঁকিপূর্ণ৷
কেস serial_codewhen /\AC/ "কম ঝুঁকি" কখন /\AL/ "মাঝারি ঝুঁকি" কখন /\AX/ "উচ্চ ঝুঁকি" অন্যথা "অজানা ঝুঁকি" শেষ হয়
রুবি কেস কখন ব্যবহার করবেন না
যখন আপনার একটি সাধারণ 1:1 ম্যাপিং থাকে, তখন আপনি এইরকম কিছু করতে প্রলুব্ধ হতে পারেন৷
৷কেস দেশ যখন "europe" "https://eu.example.com"when "america" "https://us.example.com"শেষ
আমার মতে এটির পরিবর্তে এটি করা ভাল হবে:
SITES ={ "europe" => "https://eu.example.com", "america" => "https://us.example.com"}SITES[দেশ]
হ্যাশ সমাধান আরও কার্যকরী এবং কাজ করা সহজ। আপনি কি মনে করেন না?
কেস কিভাবে কাজ করে:===পদ্ধতি
আপনি হয়তো ভাবছেন কিভাবে case
হুড অধীনে কাজ করে। যদি আমরা আমাদের প্রথম উদাহরণে ফিরে যাই, তাহলে এটাই ঘটছে:
(1..20) ===ক্ষমতা(21..70) ===ক্ষমতা(71..100) ===ক্ষমতা
আপনি দেখতে পাচ্ছেন, শর্তটি বিপরীত হয়েছে কারণ রুবি ===
কল করে বাম দিকের বস্তুর উপর। ===
শুধুমাত্র একটি পদ্ধতি যা কোন শ্রেণীর দ্বারা প্রয়োগ করা যেতে পারে। এই ক্ষেত্রে, Range
মানটি পরিসরের মধ্যে পাওয়া গেলেই সত্য প্রত্যাবর্তন করে এই পদ্ধতিটি প্রয়োগ করে।
এভাবে ===
রুবিনিয়াসে প্রয়োগ করা হয়েছে (Range
এর জন্য ক্লাস):
def ===(মান) অন্তর্ভুক্ত?(মান)শেষ
সূত্র:https://github.com/rubinius/rubinius/blob/master/core/range.rb#L178
প্রোক্স + কেস
আরেকটি আকর্ষণীয় ক্লাস যা ===
প্রয়োগ করে হল Proc
ক্লাস।
সম্পর্কিত পোস্ট :procs এবং lambdas সম্পর্কে আরও জানুন।
এই উদাহরণে আমি দুটি procs
সংজ্ঞায়িত করি , একটি even
চেক করতে সংখ্যা, এবং আরেকটি odd
এর জন্য .
বিজোড় =proc(&:odd?)even =proc(&:even?) কেস সংখ্যা যখন বিজোড় "বিজোড় সংখ্যা" রাখে যখন জোড় "জোড় সংখ্যা" শেষ করে
এটি আসলেই ঘটছে:
বিজোড়।===(সংখ্যা)জোড়।===(সংখ্যা)
===
ব্যবহার করা হচ্ছে একটি proc-এ call
ব্যবহার করার মতো একই প্রভাব রয়েছে .
উপসংহার
আপনি শিখেছেন কিভাবে রুবি কেস স্টেটমেন্ট কাজ করে এবং এটি কতটা নমনীয় হতে পারে। এখন আপনার নিজের প্রকল্পে এটির সর্বোত্তম ব্যবহার শুরু করার পালা৷
৷আমি আশা করি আপনি এই নিবন্ধটি দরকারী খুঁজে পেয়েছেন!
এই পোস্টটি শেয়ার করুন যাতে আরো মানুষ জানতে পারে! 🙂