(এটি ড্যানিয়েলের উত্তরের একটি অতিরিক্ত মন্তব্য, তবে আমি সিনট্যাক্স হাইলাইট এবং ফর্ম্যাটিংয়ের সুবিধার জন্য এটি উত্তর হিসাবে পোস্ট করছি))
প্রাথমিক শব্দবাচক শব্দটি ভাষা শব্দার্থবিদ্যায় গুরুত্বপূর্ণ বলে ব্যবহার করার ধরণ সম্পর্কে ড্যানিয়েলের বক্তব্যটি আমি যখন স্কেল শিখি তখন এর মূল কৃতিত্বের চেয়ে মূলত এর চেয়ে বেশি সূক্ষ্ম এবং গুরুত্বপূর্ণ।
নিম্নলিখিত কোড বিবেচনা করুন:
object Case {
val lowerConst = "lower"
val UpperConst = "UPPER"
def main(args: Array[String]) {
for (i <- Seq(lowerConst, UpperConst, "should mismatch.").map(Option.apply)) {
print("Input '%s' results in: ".format(i))
i match {
case Some(UpperConst) => println("UPPER!!!")
case Some(lowerConst) => println("lower!")
case _ => println("mismatch!")
}
}
}
}
নির্লজ্জভাবে আমি আশা করতাম যে ম্যাচের সমস্ত ক্ষেত্রে পৌঁছে যাবে। পরিবর্তে এটি মুদ্রণ:
Input 'Some(lower)' results in: lower!
Input 'Some(UPPER)' results in: UPPER!!!
Input 'Some(should mismatch.)' results in: lower!
যা চলছে তা হ'ল case Some(lowerConst)
ভ্যালোর ছায়া lowerConst
এবং একই নামের একটি স্থানীয় ভেরিয়েবল তৈরি করে যা কোনও Some
স্ট্রিং সম্বলিত মূল্যায়ন করা গেলে যে কোনও সময় পপুলেশন হবে ।
এটির চারপাশে কাজ করার জন্য স্বীকৃত উপায় রয়েছে তবে ধীরে ধীরে নামকরণের জন্য স্টাইল গাইড অনুসরণ করা সবচেয়ে সহজ।
আপনি যদি নামকরণের কনভেনশনটি অনুসরণ করতে না পারেন, তবে @ গ্রেগুডউইন নীচের মন্তব্যে যেমন উল্লেখ করেছেন, আপনি পরিবর্তনশীল নামটিকে টিক্সে রাখতে পারেন, তেমন
case Some(`lowerConst`) => println("lower!")