কম্পিউটার

রুবি কেস স্টেটমেন্টের অনেক ব্যবহার

যখনই আপনাকে কিছু if / elsif ব্যবহার করতে হবে বিবৃতি আপনি পরিবর্তে একটি রুবি কেস বিবৃতি ব্যবহার বিবেচনা করতে পারেন. এই পোস্টে, আপনি কয়েকটি ভিন্ন ব্যবহারের ক্ষেত্রে শিখবেন এবং কীভাবে এটি আসলেই হুডের অধীনে কাজ করে।

রুবি কেস স্টেটমেন্টের অনেক ব্যবহার

দ্রষ্টব্য:অন্যান্য প্রোগ্রামিং ভাষায় এটি একটি সুইচ নামে পরিচিত বিবৃতি।

রুবিতে একটি কেস স্টেটমেন্টের উপাদান:

৷ ৷
কীওয়ার্ড বর্ণনা
কেস একটি কেস স্টেটমেন্ট সংজ্ঞা শুরু করে৷ আপনি যে ভেরিয়েবলের সাথে কাজ করতে যাচ্ছেন সেটি গ্রহণ করে৷
কখন প্রতিটি শর্ত যা মেলে তা এক যখন বিবৃতি৷
অন্যথায় যদি কিছুই মেলে না তাহলে এটি করুন৷ ঐচ্ছিক।

রুবি কেস এবং রেঞ্জ

case বিবৃতিটি প্রথম দর্শনে প্রদর্শিত হতে পারে তার চেয়ে বেশি নমনীয়। আসুন একটি উদাহরণ দেখি যেখানে একটি মান কোন পরিসরে পড়ে তার উপর নির্ভর করে আমরা কিছু বার্তা প্রিন্ট করতে চাই৷

<প্রি>কেস ক্যাপাসিটি যখন 0 "আপনার গ্যাস ফুরিয়ে গেছে।"যখন 1..20 "ট্যাঙ্কটি প্রায় খালি। তাড়াতাড়ি, একটি গ্যাস স্টেশন খুঁজুন!"যখন 21..70 "আপনার এখন ঠিক আছে।"যখন 71 ..100 "ট্যাঙ্কটি প্রায় পূর্ণ।" অন্যথা "ত্রুটি:ক্ষমতার একটি অবৈধ মান আছে (#{capacity})"end

আমি মনে করি এই কোডটি 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 ব্যবহার করার মতো একই প্রভাব রয়েছে .

উপসংহার

আপনি শিখেছেন কিভাবে রুবি কেস স্টেটমেন্ট কাজ করে এবং এটি কতটা নমনীয় হতে পারে। এখন আপনার নিজের প্রকল্পে এটির সর্বোত্তম ব্যবহার শুরু করার পালা৷

আমি আশা করি আপনি এই নিবন্ধটি দরকারী খুঁজে পেয়েছেন!

এই পোস্টটি শেয়ার করুন যাতে আরো মানুষ জানতে পারে! 🙂


  1. রুবিতে ডুপ বনাম ক্লোন:পার্থক্য বোঝা

  2. রুবি আলিয়াস কীওয়ার্ড কীভাবে ব্যবহার করবেন

  3. রুবিতে ডেকোরেটর ডিজাইন প্যাটার্ন

  4. আইফোনে হোম বোতামের অনেক ব্যবহার