আমি সম্প্রতি একটি বড় সংস্থায় কাজ করার সময় আমি লক্ষ্য করেছি যে সেখানকার প্রোগ্রামাররা এই কোডিং স্টাইলটি অনুসরণ করেছে:
ধরুন আমার একটি ফাংশন রয়েছে যা ইনপুটটি A হলে 12, ইনপুটটি B হলে 21 এবং ইনপুট সি হলে 45 দেয় returns
সুতরাং আমি এই হিসাবে ফাংশন স্বাক্ষর লিখতে পারেন:
int foo(String s){
if(s.equals("A")) return 12;
else if(s.equals("B")) return 21;
else if(s.equals("C")) return 45;
else throw new RuntimeException("Invalid input to function foo");
}
তবে কোড পর্যালোচনায় আমাকে ফাংশনটি নিম্নলিখিতটিতে পরিবর্তন করতে বলা হয়েছিল:
int foo(String s){
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("A", 12);
map.put("B", 21);
map.put("C", 45);
return map.get(s);
}
দ্বিতীয় কোডটি কেন প্রথমটির চেয়ে ভাল is আমি নিজেকে বোঝাতে পারি না। দ্বিতীয় কোডটি অবশ্যই চালাতে আরও বেশি সময় নেবে।
দ্বিতীয় কোডটি ব্যবহারের একমাত্র কারণ হ'ল এটি আরও ভাল পাঠযোগ্যতার প্রস্তাব দেয়। কিন্তু যদি ফাংশনটি অনেকবার কল করা হয় তবে দ্বিতীয় ফাংশনটি ইউটিলিটির কলিংটির চলমান সময়কে কমিয়ে দেবে না?
আপনি এ ব্যপারে কী ভাবছেন?
switch
চেয়ে মনে হয় (এর চেয়ে বেশি উপযুক্ত বলে মনে হয়if-else
)। তবে এক পর্যায়ে এটি সমস্যাযুক্ত হয়ে ওঠে। মানচিত্রটি ব্যবহারের প্রধান সুবিধা হ'ল আপনি এটিকে ফাইল বা টেবিল ইত্যাদি থেকে লোড করতে পারেন যদি আপনি মানচিত্রে ইনপুটটিকে কঠোরভাবে কোডিং করছেন তবে আমি একটি স্যুইচ দিয়ে খুব বেশি মূল্য দেখছি না।