Enumeration
বৈশিষ্ট্য একটি টাইপ জন সদস্য রয়েছে Value
শুমার পৃথক উপাদান (এটা আসলে একটি ভিতরের বর্গ, কিন্তু পার্থক্য ব্যাপার এখানে না) উপস্থাপন করে।
সুতরাং object WeekDay
এই ধরণের সদস্য উত্তরাধিকার সূত্রে প্রাপ্ত। লাইনটি type WeekDay = Value
কেবল একটি টাইপ ওরফে । এটি দরকারী, কারণ এটির সাথে অন্য কোথাও আমদানি করার পরে আপনি import WeekDay._
এই ধরণের ব্যবহার করতে পারেন, যেমন:
def isWorkingDay(d: WeekDay) = ! (d == Sat || d == Sun)
পরিবর্তে, একটি সর্বনিম্ন সংস্করণটি হ'ল:
object WeekDay extends Enumeration {
val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value
}
এবং আপনি না আছে বিষয়বস্তু আমদানি object WeekDay
, কিন্তু তারপর আপনি টাইপ ব্যবহার করতে হবে WeekDay.Value
এবং প্রতিটি সদস্যের যোগ্যতা। সুতরাং উদাহরণ হয়ে উঠবে
def isWorkingDay(d: WeekDay.Value) = ! (d == WeekDay.Sat || d == WeekDay.Sun)
দ্বিতীয় প্রশ্নটির অর্থ সম্পর্কে val Mon, ... = Value
। এটি বাস্তবায়নের দিকে নজর না দিলে এটি অবশ্যই খুব বিভ্রান্তিকর Enumeration
। এটি কোনও ধরণের অ্যাসাইনমেন্ট নয়! এটা তোলে পরিবর্তে একটি সুরক্ষিত কল করছে একই নামের পদ্ধতি , Value
যার ধরনের একটি কংক্রিট উদাহরণ হিসেবে বলা যায় ফেরৎ Value
।
যদি এমন হয় যে আপনি লিখতে পারেন val a, b, c = foo
Scala, এবং প্রতিটি মান জন্য a
, b
এবং c
পদ্ধতি foo
আবার এবং আবার ডাকা হবে। Enumeration
অভ্যন্তরীণ কাউন্টারকে বাড়ানোর জন্য এই কৌশলটি ব্যবহার করে যাতে প্রতিটি মান পৃথক হয়।
আপনি যদি স্কালা এপিআই ডকসগুলি খুলেন Enumeration
এবং ক্লিক করেন Visibility: All
, আপনি সেই পদ্ধতিটি উপস্থিত দেখবেন।