যখন তিনি বলেন যে স্কালা একাধিক উত্তরাধিকার সমর্থন করে না, তখন তিনি একাধিকবার কোনও পদ্ধতি প্রয়োগের উত্তরাধিকার সূত্রে বোঝায়। অবশ্যই আপনি একটি শ্রেণিতে একাধিক ইন্টারফেস / বৈশিষ্ট্য প্রয়োগ করতে পারেন এবং তারা একই পদ্ধতিটিকে সংজ্ঞায়িত করতে পারে তবে বৈশিষ্ট্য রৈখিককরণের কারণে আপনি বিভিন্ন প্রয়োগের মধ্যে দ্বন্দ্ব পান না।
সাধারণভাবে, যদি আপনার C1
কোনও পদ্ধতি সহ একটি f()
শ্রেণি থাকে C2
এবং কোনও পদ্ধতি সহ কোনও শ্রেণি থাকে f()
, তবে একাধিক উত্তরাধিকারের অর্থ আপনি কোনওভাবেই উভয় প্রয়োগের উত্তরাধিকারী হতে পারেন f()
। এটি বিভিন্ন সমস্যার সৃষ্টি করতে পারে, যা স্ক্যালাল কেবলমাত্র আপনাকে একক শ্রেণীর উত্তরাধিকার সূত্রে এবং বৈশিষ্ট্যের ক্রমের ভিত্তিতে একটি বাস্তবায়ন নির্বাচন করে একাধিক বৈশিষ্ট্যের ক্ষেত্রে সমাধান করার মাধ্যমে সমাধান করে।
হিসাবে Nothing
জিনিস, অত্যন্ত সহজ, কারণ কিছুই কোন বৈশিষ্ট্যাবলী অথবা পদ্ধতি সংজ্ঞায়িত হয়েছে। সুতরাং আপনার কোনও উত্তরাধিকারের বিরোধ নেই। তবে আমি ধরে নিই যে আপনার বেশিরভাগ আশ্চর্যতা একাধিক উত্তরাধিকারের আলাদা বোঝার থেকে আসে।
একবার আপনি বুঝতে পারবেন যে বৈশিষ্ট্য রৈখিককরণ উত্তরাধিকারের যে কোনও অস্পষ্টতাকে কার্যকরভাবে মুছে ফেলে এবং আমরা একাধিক বৈশিষ্ট্য থেকে উত্তরাধিকার হিসাবে একাধিক উত্তরাধিকার হিসাবে উল্লেখ করি না , তবে আপনার ভাল হওয়া উচিত।
এটি কীভাবে উপলব্ধি করা যায়: সংকলক শেষ পর্যন্ত এর জন্য দায়ী। দেখুন Scala ভাষা স্পেসিফিকেশন অধ্যায় 3.5.2 অনুরূপ, যাতে অন্যান্য বৈশিষ্ট্য মধ্যে রয়েছে:
For every type constructor T (with any number of type parameters), scala.Nothing <: T <: scala.Any.
বা অন্য কথায়, আপনি যদি একটি সংকলকটি সঠিকভাবে প্রয়োগ করতে চান, তবে এটি Nothing
নির্দিষ্টকরণের মাধ্যমে সমস্ত কিছুর উপ-টাইপ হিসাবে পরিচালনা করতে হবে । সুস্পষ্ট কারণে, Nothing
সিস্টেমে লোড করা সমস্ত শ্রেণি থেকে প্রসারিত করার জন্য সংজ্ঞায়িত করা হয় না, তবে Nothing
সাব টাইপ হিসাবে সংজ্ঞায়নের প্রাসঙ্গিকতা সমস্ত জায়গাতেই সীমাবদ্ধ যেখানে সাব টাইপিং প্রাসঙ্গিক।
এখানে একটি গুরুত্বপূর্ণ বিষয়টি হ'ল এখানে টাইপের কোনও উদাহরণ নেই Nothing
, সুতরাং, এর চিকিত্সা কঠোরভাবে টাইপ-চেকিংয়ের মধ্যে সীমাবদ্ধ, যা সমস্ত সংকলকটির রাজ্যে।