স্কালা প্রোগ্রামিং ভাষায় লিটারেলস (Literals) এবং কনস্ট্যান্টস (Constants) গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলি ভেরিয়েবল, ফাংশন বা ডাটা স্ট্রাকচারকে নির্দিষ্ট মান প্রদান করতে ব্যবহৃত হয়। স্কালায় লিটারেলস এবং কনস্ট্যান্টস এর বিভিন্ন ধরনের আছে, যেগুলি কোডের মধ্যে নির্দিষ্ট মান বা ডাটা সংরক্ষণ করতে ব্যবহৃত হয়।
১. স্কালা লিটারেলস (Scala Literals)
লিটারেল হল এমন একটি মান যা সরাসরি কোডে লিখিত হয় এবং এটি একটি ভেরিয়েবল, কনস্ট্যান্ট বা এক্সপ্রেশনের মাধ্যমে পরিবর্তিত হয় না। স্কালায় বিভিন্ন ধরনের লিটারেল রয়েছে, যেমন: নম্বর লিটারেলস, স্ট্রিং লিটারেলস, বুলিয়ান লিটারেলস, চর লিটারেলস ইত্যাদি।
১.১ নম্বর লিটারেলস (Number Literals)
স্কালায় বিভিন্ন ধরনের নম্বর লিটারেল ব্যবহার করা হয়, যেমন ইন্টিজার (Int), ডাবল (Double), ফ্লোট (Float), লং (Long), ইত্যাদি।
val intVal: Int = 100 // Integer literal
val doubleVal: Double = 3.14 // Double literal
val floatVal: Float = 3.14F // Float literal (F at the end)
val longVal: Long = 100000L // Long literal (L at the end)এখানে:
100,3.14,3.14F, এবং100000Lহল লিটারেল মান যা বিভিন্ন ডাটা টাইপের জন্য ব্যবহৃত হচ্ছে।
১.২ স্ট্রিং লিটারেলস (String Literals)
স্কালায় স্ট্রিং লিটারেল সাধারণভাবে " এর মধ্যে লেখা হয়।
val greeting: String = "Hello, Scala!"
val multiLine: String = """This is
a multi-line
string"""এখানে:
"Hello, Scala!"একটি সাধারণ স্ট্রিং লিটারেল।"""This is..."""হলো মাল্টি-লাইন স্ট্রিং লিটারেল, যা একাধিক লাইনে স্ট্রিং সংরক্ষণ করতে ব্যবহৃত হয়।
১.৩ চর লিটারেলস (Character Literals)
স্কালায় একটি চর লিটারেল একটি একক অক্ষর দ্বারা নির্দিষ্ট হয়, যা সাধারণত ' দ্বারা ঘিরে রাখা হয়।
val letter: Char = 'A' // Character literalএখানে:
'A'একটি চর লিটারেল।
১.৪ বুলিয়ান লিটারেলস (Boolean Literals)
বুলিয়ান লিটারেল দুটি মান নিয়ে কাজ করে: true এবং **false**।
val isScalaFun: Boolean = true // Boolean literal
val isJavaFun: Boolean = false // Boolean literalএখানে:
trueএবংfalseহল বুলিয়ান লিটারেলস।
১.৫ নাল লিটারেল (Null Literals)
স্কালায় null একটি বিশেষ লিটারেল যা কোনো অবজেক্ট রেফারেন্সকে নির্দেশ করে না।
val someObject: String = null // Null literalএখানে:
nullএকটি নাল লিটারেল যা মানে এটি কোনো অবজেক্ট বা মানের রেফারেন্স নেই।
২. স্কালা কনস্ট্যান্টস (Scala Constants)
স্কালায় কনস্ট্যান্টস হল এমন ভেরিয়েবল যা একবার ইনিশিয়ালাইজ করার পর কখনও পরিবর্তিত হয় না। স্কালায় কনস্ট্যান্টস ডিফাইন করা হয় val কিওয়ার্ড দিয়ে। যেহেতু val কনস্ট্যান্টস ইমিউটেবল (immutable), একবার তাদের মান সেট করার পর আর পরিবর্তন করা যায় না। তবে, var কিওয়ার্ড দিয়ে মিউটেবল ভেরিয়েবল ডিফাইন করা যায় যা পরিবর্তিত হতে পারে।
২.১ ইমিউটেবল কনস্ট্যান্টস (Immutable Constants)
object ConstantsExample {
val pi: Double = 3.14159 // Immutable constant
val maxLimit: Int = 100 // Immutable constant
def main(args: Array[String]): Unit = {
println("Pi: " + pi)
println("Max Limit: " + maxLimit)
}
}এখানে:
piএবংmaxLimitহল ইমিউটেবল কনস্ট্যান্টস, যেগুলি একবার নির্ধারিত হওয়ার পর আর পরিবর্তন করা যাবে না।
২.২ সিস্টেম কনস্ট্যান্টস (System Constants)
স্কালায় কিছু সিস্টেম লেভেলের কনস্ট্যান্টও রয়েছে, যেমন Double.NaN, Double.PositiveInfinity, Double.NegativeInfinity, এবং Integer.MAX_VALUE ইত্যাদি।
object SystemConstants {
def main(args: Array[String]): Unit = {
println("NaN: " + Double.NaN)
println("Positive Infinity: " + Double.PositiveInfinity)
println("Negative Infinity: " + Double.NegativeInfinity)
println("Max Int: " + Integer.MAX_VALUE)
}
}এখানে:
Double.NaN,Double.PositiveInfinity,Double.NegativeInfinity, এবংInteger.MAX_VALUEসিস্টেম কনস্ট্যান্টস হিসেবে ব্যবহৃত হচ্ছে।
২.৩ কনস্ট্যান্ট এবং val vs var
val:valদিয়ে আপনি একটি কনস্ট্যান্ট ডিফাইন করতে পারেন, যার মান একবার সেট হওয়ার পর আর পরিবর্তিত হয় না। এটি ইমিউটেবল (immutable) ভেরিয়েবল।var:varদিয়ে আপনি একটি মিউটেবল ভেরিয়েবল ডিফাইন করতে পারেন, যার মান পরবর্তীতে পরিবর্তিত হতে পারে।
val constantValue: Int = 42 // Immutable
var mutableValue: Int = 25 // Mutableএখানে:
constantValueহল একটি কনস্ট্যান্ট যা একবার সেট হওয়ার পর পরিবর্তন করা যাবে না।mutableValueহল একটি মিউটেবল ভেরিয়েবল যার মান পরবর্তীতে পরিবর্তন করা যেতে পারে।
সারাংশ
- লিটারেলস (Literals) হল নির্দিষ্ট মান যেগুলি কোডে সরাসরি উল্লেখ করা হয়, যেমন নম্বর, স্ট্রিং, চর, বুলিয়ান ইত্যাদি।
- কনস্ট্যান্টস (Constants) হল এমন ভেরিয়েবল যার মান একবার সেট করার পর আর পরিবর্তিত হয় না, এবং এটি
valকিওয়ার্ড দিয়ে ডিফাইন করা হয়।
স্কালায় লিটারেলস এবং কনস্ট্যান্টস খুবই গুরুত্বপূর্ণ এবং প্রোগ্রাম লেখার সময় ডাটা নিরাপত্তা এবং কার্যকারিতা বাড়াতে সাহায্য করে।
Read more