স্কাল কনস্ট্যান্টদের নামকরণের কনভেনশন?


98

স্কাল ধ্রুবকগুলির নামকরণ কনভেনশন কী? স্ট্যাকওভারফ্লো পরামর্শ দেওয়া বড় আকারের ক্যামেলকেস (নীচের প্রথম লাইন) এর উপর একটি সংক্ষিপ্ত অনুসন্ধান, তবে আমি ডাবল-চেক করতে চেয়েছিলাম।

val ThisIsAConstant = 1.23
val THIS_IS_ANOTHER_CONSTANT = 1.55
val thisIsAThirdConstant = 1.94

কোনটি স্কেল স্টাইলের প্রস্তাব দেওয়া হয়?


4
যখন এটি প্রচলিত, সম্পূর্ণরূপে পূর্বনির্ধারিত সি- / জাভা-স্টাইলের ধ্রুবকের মতো ব্যবহার করা হয় তখন প্রথমটি। দ্বিতীয় রূপ - এবং সাধারণভাবে নামগুলিকে আন্ডারস্কোর করে never সত্যই কখনও ব্যবহৃত হয় না। তৃতীয়টি সাধারণত পরিবর্তনশীল মানগুলির জন্য ব্যবহৃত হয় যা গতিশীলভাবে উত্পন্ন হয়।
Destin

4
আমি দ্বিতীয়টি ব্যবহার করছি তবে বেশিরভাগ জাভা অভিজ্ঞতার জন্য। এটিকে অগ্রাহ্য করুন, আমি মনে করি বেশিরভাগ সরকারী উপায় হ'ল প্রথমটি (যেহেতু এটি স্কেল লিবিতে ব্যবহৃত হয়, যেমন eg যা সংজ্ঞায়িত হয়েছে তা দেখুন Pi)
ওম-নাম-মনোনীত

উত্তর:


128

আনুষ্ঠানিকভাবে প্রস্তাবিত স্টাইল (এবং আমি আনুষ্ঠানিকভাবে বলতে চাইছি) হ'ল প্রথম শৈলী, প্রথম অক্ষরের সাথে উটের ক্ষেত্রে বড় হাতের অক্ষর। এটি স্কেল ইন প্রোগ্রামিং অন ওর্ডারস্কির দ্বারা স্পষ্টভাবে লিখেছিলেন।

স্টাইলটি স্ট্যান্ডার্ড লাইব্রেরি অনুসরন করে এবং ভাষা শব্দার্থবিদ্যায় কিছুটা সমর্থন রয়েছে: উপরের ক্ষেত্রে শুরু হওয়া শনাক্তকারীগুলিকে প্যাটার্ন মিলের ক্ষেত্রে ধ্রুবক হিসাবে বিবেচনা করা হয়।

(দ্বিতীয় সংস্করণে ধারা 6.10, পৃষ্ঠা 107)


4
সরকারী স্কালার নামকরণের দিকনির্দেশগুলির দিকে তাকানো
ম্যাথিয়াস

4
পছন্দ করেছেন একটি ভয়াবহ তদারকি, তবে, আমাকে বিশ্বাস করুন, কেবল এটি সঠিক নয়, তৃতীয় স্টাইলটি সমস্যার সৃষ্টি করবে , আপনি এটি কোনও প্যাটার্ন ম্যাচে ব্যবহার করার সাথে সাথেই।
ড্যানিয়েল সি সোব্রাল

4
@ মাথিয়াস আমি এখন এটি সম্পর্কে একটি সমস্যা খুলেছি । আমি সাধারণত সমাধানটি করতাম এবং এটি PR করতাম, তবে দুঃখের সাথে আমার আজকাল খুব কম সময় লাগছে। :(
ড্যানিয়েল সি সোব্রাল

4
নিবন্ধন করুন এটি বৈশিষ্ট্যগুলিতে নিখুঁত ধারণা তৈরি করে এবং এমনকি ফাংশনের সুযোগেও এটি অর্থবোধ করে যে আপনি প্যাটার্ন মেলানোর ক্ষেত্রে এটি ব্যবহার করছেন।
ড্যানিয়েল সি সোব্রাল

4
আমি আমার কোডে শৈলী লঙ্ঘন পরীক্ষা করতে স্কেলস্টাইল ব্যবহার করছি। তবে মনে হচ্ছে না ধ্রুবকগুলির জন্য নামকরণের এই ত্রুটিগুলি ধরা পড়ে। প্রথম চিঠির মূলধনকে কেন্দ্র করে উটের ক্ষেত্রে ধ্রুবকদের নামকরণ করা নিশ্চিত করে এমন কোনও চেক সক্ষম করার কোনও উপায় আছে কি?
jithinpt

43

(এটি ড্যানিয়েলের উত্তরের একটি অতিরিক্ত মন্তব্য, তবে আমি সিনট্যাক্স হাইলাইট এবং ফর্ম্যাটিংয়ের সুবিধার জন্য এটি উত্তর হিসাবে পোস্ট করছি))

প্রাথমিক শব্দবাচক শব্দটি ভাষা শব্দার্থবিদ্যায় গুরুত্বপূর্ণ বলে ব্যবহার করার ধরণ সম্পর্কে ড্যানিয়েলের বক্তব্যটি আমি যখন স্কেল শিখি তখন এর মূল কৃতিত্বের চেয়ে মূলত এর চেয়ে বেশি সূক্ষ্ম এবং গুরুত্বপূর্ণ।

নিম্নলিখিত কোড বিবেচনা করুন:

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!")

4
লাইফের উত্তরে যুক্ত করা: স্ক্যালার 15.2 তে প্রোগ্রামিংয়ে এই দৃশ্যের উল্লেখ রয়েছে। যদি ছোট মামলার সাথে ধ্রুবক শুরু করা ছাড়া আর বিকল্প থাকে না তবে তা পিছনে টিক্স সহ পালাতে পারে, যেমন কেস `পাই` => ....
রেগগুডউইন

4
যদি কিছু (লোয়ারকনস্ট) ভাল লোয়ারকনস্টের ছায়া দেয় তবে কেন কিছু (আপারকনস্ট) ভাল আপারকনস্টকে শেড করছে না?
অ্যাড্রিয়ান

@ লিফ উইকল্যান্ড @ ড্যানিয়েল সি সোব্রাল প্যাটার্ন ম্যাচিংয়ের কনভেনশনের জন্য ধ্রুবকগুলির মূল্যবোধ কী? যেমন val UpperConst = "UPPER_CONST"ঠিক আছে বা এটি হওয়া উচিতval UpperConst = "UpperConst"
nir

7

অবিচ্ছিন্ন নামগুলি উটের ক্ষেত্রে হওয়া উচিত। এটি হ'ল, যদি সদস্যটি চূড়ান্ত, স্থাবর হয় এবং এটি কোনও প্যাকেজ অবজেক্ট বা কোনও জিনিসের সাথে সম্পর্কিত হয় তবে এটি একটি ধ্রুবক হিসাবে বিবেচিত হতে পারে .... পদ্ধতি, মান এবং পরিবর্তনশীল নামগুলি নিম্ন উটের ক্ষেত্রে হওয়া উচিত

http://docs.scala-lang.org/style/naming-conventions.html#constants-values- পরিবর্তনশীল- এবং- মিথ্যাবাদী


প্যাটার্ন মিলের কনভেনশনের জন্য কি ধ্রুবকের মূল্যবোধগুলি গুরুত্বপূর্ণ? উদাহরণস্বরূপ UpperConst = "UPPER_CONST"ভাল অংশ যেমন জাভা-স্টাইল ঠিক আছে বা এটি হওয়া উচিতval UpperConst = "UpperConst"
nir
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.