আমার প্রাথমিক ভাষাটি স্ট্যাটিকালি টাইপ করা হয়েছে (জাভা)। জাভাতে, আপনাকে প্রতিটি পদ্ধতি থেকে একক প্রকার ফিরে আসতে হবে। উদাহরণস্বরূপ, আপনার এমন কোনও পদ্ধতি থাকতে পারে না যা শর্তসাপেক্ষে একটি String
বা শর্তসাপেক্ষে একটি প্রদান করে Integer
। তবে জাভাস্ক্রিপ্টে, উদাহরণস্বরূপ, এটি খুব সম্ভব।
স্থিতিযুক্ত টাইপিত ভাষায় আমি পেয়েছি কেন এটি খারাপ ধারণা। যদি প্রতিটি পদ্ধতি ফিরে আসে Object
(সাধারণ পিতামাতার সমস্ত শ্রেণীর উত্তরাধিকার সূত্রে) তবে আপনি এবং সংকলকটি জানেন না আপনি কী নিয়ে কাজ করছেন। রান সময়ে আপনাকে আপনার সমস্ত ভুল আবিষ্কার করতে হবে।
তবে গতিশীলভাবে টাইপ করা ভাষায়, সংকলক এমনকি নাও থাকতে পারে। ডায়নামিকভাবে টাইপ করা ভাষায়, এটি আমার কাছে স্পষ্ট নয় যে কোনও ফাংশন যা একাধিক ধরণের ফেরত দেয় তা কেন খারাপ ধারণা। স্ট্যাটিক ভাষাগুলিতে আমার পটভূমি আমাকে এ জাতীয় ফাংশনগুলি রচনা এড়াতে বাধ্য করে, তবে আমি আশঙ্কা করি যে এমন কোনও বৈশিষ্ট্য সম্পর্কে আমার ঘনিষ্ঠ মনোভাব রয়েছে যা আমার কোডটি যেভাবে দেখতে পাচ্ছে না সেভাবে পরিষ্কার করতে পারে।
সম্পাদনা : আমি আমার উদাহরণটি সরিয়ে ফেলছি (যতক্ষণ না আমি এর চেয়ে ভালটির কথা ভাবতে পারি)। আমি মনে করি এটি লোকেদের এমন এক পয়েন্টে জবাব দেওয়ার জন্য পরিচালিত করছে যা আমি করার চেষ্টা করছি না।
(coerce var 'string)
একটি string
বা (concatenate 'string this that the-other-thing)
তেমনি ফলন পেয়েছি । আমি ThingLoader.getThingById (Class<extends FindableThing> klass, long id)
পাশাপাশি জিনিস লিখেছি । এবং সেখানে আমি কেবল এমন কিছু প্রত্যাবর্তন করতে পারি যা আপনি যা চেয়েছিলেন তা সাবক্লাসগুলি: যা loader.getThingById (SubclassA.class, 14)
হয়ত SubclassB
প্রসারিত হবে তা ফিরে আসতে পারে SubclassA
...