প্রশ্নটি হল, অন্তর্নিহিত ধরণের রূপান্তরকরণ অপারেটরের ব্যবহারগুলি কী কী যা আমার কোডটি বোঝার পক্ষে আরও বেশি জটিল করে দেয় না?
যখন ধরনের নয় (প্রোগ্রামারদের জন্য) সম্পর্কহীন। (দুষ্প্রাপ্য) পরিস্থিতি রয়েছে যেখানে আপনার দুটি প্রাসঙ্গিক প্রকার রয়েছে (কোড সম্পর্কিত যতদূর), যা আসলে সম্পর্কিত (ডোমেন বা যুক্তিসঙ্গত প্রোগ্রামার হিসাবে) সম্পর্কিত।
উদাহরণস্বরূপ, স্ট্রিং ম্যাচিংয়ের জন্য কিছু কোড। একটি সাধারণ দৃশ্য হ'ল একটি স্ট্রিং আক্ষরিক সাথে মেলে। কল করার পরিবর্তে IsMatch(input, new Literal("some string"))
, একটি অন্তর্নিহিত রূপান্তর আপনাকে সেই অনুষ্ঠানটি থেকে মুক্তি দিতে দেয় - কোডের আওয়াজ - এবং স্ট্রিংকে আক্ষরিক দিকে ফোকাস দেয়।
বেশিরভাগ যে কোনও প্রোগ্রামার দেখতে পাচ্ছে IsMatch(input, "some string")
এবং কী চলছে তা দ্রুত আবিষ্কার করবে । এটি কল সাইটে আপনার কোড পরিষ্কার করে। সংক্ষেপে বলতে গেলে, এটা একটি বিট বুঝতে সহজ করে তোলে কি , চলছে সামান্য খরচে কিভাবে যে যাচ্ছে।
এখন, আপনি তর্ক করতে পারেন যে একই জিনিসটি করার জন্য একটি সাধারণ ফাংশন ওভারলোড আরও ভাল। এবং এটা করা হয়. তবে যদি এই ধরণের জিনিসটি সর্বব্যাপী হয়, তবে ফাংশন ওভারলোডের গাদা করার চেয়ে এক ধরণের রূপান্তর হ'ল ক্লিনার (কম কোড, বর্ধিত ধারাবাহিকতা) is
এবং আপনি তর্ক করতে পারেন যে প্রোগ্রামারদের স্পষ্টভাবে অন্তর্বর্তী প্রকারটি তৈরি করা আরও ভাল হয় যাতে তারা "সত্যিকার অর্থে কী চলছে" দেখেন। এটা সহজ সোজা। ব্যক্তিগতভাবে, আমি মনে করি যে আক্ষরিক স্ট্রিংয়ের মিলের উদাহরণটি "আসলে কী চলছে" সম্পর্কে খুব স্পষ্ট - প্রোগ্রামারকে সবকিছু কীভাবে হয় তার যান্ত্রিকতা সম্পর্কে জানতে হবে না । আপনি কী জানেন যে আপনার কোডটি কীভাবে চালিত হয় বিভিন্ন প্রসেসরের দ্বারা আপনার কোডটি চালানো হয়? সবসময় বিমূর্ততার একটি লাইন থাকে যেখানে প্রোগ্রামাররা কীভাবে কীভাবে কাজ করে সে সম্পর্কে যত্ন নেওয়া বন্ধ করে দেয়। যদি আপনি ভাবেন যে অন্তর্নিহিত রূপান্তর পদক্ষেপগুলি গুরুত্বপূর্ণ, তবে অন্তর্নিহিত রূপান্তরটি ব্যবহার করবেন না। আপনি যদি ভাবেন যে তারা কম্পিউটারকে সুখী রাখার জন্য কেবল অনুষ্ঠান, এবং প্রোগ্রামারটি কোথাও এই শব্দটি না দেখে ভাল হবে,