স্কালা একটি উচ্চ স্তরের প্রোগ্রামিং ভাষা যা সাধারণভাবে জাভা ভি-এম (JVM) এ চলে এবং অবজেক্ট-অরিয়েন্টেড ও ফাংশনাল প্রোগ্রামিংয়ের সমন্বয়ে কাজ করে। স্কালার সিনট্যাক্স এবং ফাইল স্ট্রাকচার কিছুটা আলাদা, কিন্তু সেগুলি খুবই পরিষ্কার এবং কোডের কার্যকারিতা সহজ করে দেয়।
১. স্কালা সিনট্যাক্স (Scala Syntax)
স্কালা প্রোগ্রামিং ভাষার সিনট্যাক্স অনেকটা জাভার মতো হলেও কিছু ক্ষেত্রে এটি আরও সংক্ষিপ্ত এবং শক্তিশালী। এখানে কিছু বেসিক স্কালা সিনট্যাক্স দেওয়া হলো:
১.১ অবজেক্ট (Object)
স্কালা প্রোগ্রাম শুরু হয় object কিওয়ার্ড দিয়ে। স্কালায় সমস্ত কোড একটি object-এর মধ্যে থাকতে হয়, যেখানে main মেথড থাকা আবশ্যক।
object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello, Scala!")
}
}objectব্যবহার করে স্কালায় একটি একক ইনস্ট্যান্স তৈরি করা হয়।def mainহল প্রধান মেথড যা কোডের কার্যক্রম শুরু করে।
১.২ ভ্যারিয়েবল (Variables)
স্কালায় ভ্যারিয়েবল দুটি ধরনের হয়: immutable (যেগুলি পরিবর্তন করা যায় না) এবং mutable (যেগুলি পরিবর্তন করা যায়)।
- val: Immutable ভ্যারিয়েবল (একবার মান অ্যাসাইন করার পর পরিবর্তন করা যায় না)
- var: Mutable ভ্যারিয়েবল (পুনরায় মান অ্যাসাইন করা যায়)
val x: Int = 10 // Immutable variable
var y: Int = 20 // Mutable variable
y = 25 // This is allowed as y is a var
println(x) // Output: 10
println(y) // Output: 25১.৩ কন্ডিশনাল স্টেটমেন্ট (If-Else)
স্কালায় if-else কন্ডিশনাল স্টেটমেন্ট সাধারণভাবে ব্যবহৃত হয়।
val number = 10
if (number > 0) {
println("Positive number")
} else {
println("Negative or Zero")
}১.৪ ফাংশন (Functions)
স্কালায় ফাংশন ডিফাইন করা হয় def কিওয়ার্ড দিয়ে। একটি ফাংশনে আর্গুমেন্ট এবং রিটার্ন টাইপ থাকতে পারে।
def add(a: Int, b: Int): Int = {
return a + b
}
val result = add(5, 10)
println(result) // Output: 15১.৫ লুপ (Loops)
স্কালায় for এবং while লুপ ব্যবহার করা হয়।
For Loop:
for (i <- 1 to 5) { println(i) }While Loop:
var i = 1 while (i <= 5) { println(i) i += 1 }
১.৬ ক্লাস (Classes)
স্কালায় ক্লাস তৈরি করতে class কিওয়ার্ড ব্যবহার করা হয়।
class Person(name: String, age: Int) {
def greet() = {
println(s"Hello, my name is $name and I am $age years old.")
}
}
val person = new Person("Alice", 30)
person.greet() // Output: Hello, my name is Alice and I am 30 years old.২. স্কালা ফাইল স্ট্রাকচার (Scala File Structure)
স্কালা প্রোগ্রামগুলোর একটি নির্দিষ্ট ফাইল স্ট্রাকচার থাকে যা ব্যবহৃত প্রজেক্টের ধরন অনুযায়ী ভিন্ন হতে পারে। সাধারণভাবে স্কালার ফাইল স্ট্রাকচার হল:
২.১ একটি স্কালা ফাইলের মৌলিক কাঠামো
স্কালা ফাইলের একমাত্র গুরুত্বপূর্ণ অংশ হলো object বা class যেখানে আপনার কোড সংরক্ষিত থাকবে। একটি স্কালা প্রোগ্রাম সাধারণত .scala এক্সটেনশনের সাথে সংরক্ষিত হয়।
ফাইলের সাধারণ কাঠামো:
src/
└── main/
└── scala/
└── HelloWorld.scalaউদাহরণ:
object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello, Scala!")
}
}২.২ প্রোজেক্ট স্ট্রাকচার
যদি আপনি একটি বৃহত্তর স্কালা প্রোজেক্ট তৈরি করেন, তবে সাধারণত নিচের মত একটি ফোল্ডার স্ট্রাকচার থাকবে:
project/
├── build.sbt
├── src/
│ ├── main/
│ │ ├── scala/
│ │ │ ├── Main.scala
│ │ └── resources/
│ └── test/
│ ├── scala/
│ └── resources/
├── lib/
└── target/src/main/scala/: এখানে আপনার মূল স্কালা সোর্স কোড থাকবে।src/test/scala/: এখানে টেস্ট কোড থাকবে।build.sbt: এটি SBT কনফিগারেশন ফাইল যা স্কালা প্রোজেক্টের ডিপেন্ডেন্সি এবং বিল্ড কনফিগারেশন নির্ধারণ করে।
২.৩ SBT ফাইল (build.sbt)
build.sbt হল স্কালা প্রোজেক্টের জন্য একটি কনফিগারেশন ফাইল যেখানে প্রোজেক্টের তথ্য এবং ডিপেন্ডেন্সি সেটআপ করা হয়। উদাহরণ:
name := "MyScalaProject"
version := "0.1"
scalaVersion := "2.13.6"
libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.13.6"এই ফাইলের মাধ্যমে প্রোজেক্টের স্কালা সংস্করণ এবং প্রয়োজনীয় লাইব্রেরিগুলি যুক্ত করা হয়।
৩. স্কালা প্রোজেক্টের পরিচালনা (Project Management)
SBT (Simple Build Tool) ব্যবহার করে স্কালা প্রোজেক্ট পরিচালনা করা হয়। এটি স্কালার জন্য একটি বিল্ড টুল যা ডিপেন্ডেন্সি ম্যানেজমেন্ট এবং বিল্ড প্রক্রিয়া সহজ করে তোলে। SBT প্রোজেক্টের ডিপেন্ডেন্সি, টেস্টিং এবং বিল্ড সিস্টেম পরিচালনা করতে ব্যবহৃত হয়।
SBT ব্যবহার করে প্রোজেক্ট তৈরি:
- প্রোজেক্ট ফোল্ডার তৈরি করুন:
- প্রোজেক্টের জন্য একটি নতুন ফোল্ডার তৈরি করুন এবং সেখানে
build.sbtফাইল তৈরি করুন।
- প্রোজেক্টের জন্য একটি নতুন ফোল্ডার তৈরি করুন এবং সেখানে
- লইব্রেরি ডিপেন্ডেন্সি যুক্ত করুন:
libraryDependenciesএ লাইব্রেরি ডিপেন্ডেন্সি লিখুন।
সারাংশ
স্কালার সিনট্যাক্স সোজা এবং শক্তিশালী। এর ফাইল স্ট্রাকচার সাধারণভাবে src/main/scala/ এবং src/test/scala/ ফোল্ডারে কোড সংরক্ষণ করে, যেখানে build.sbt কনফিগারেশন ফাইল থাকে। স্কালা প্রোগ্রামগুলি খুবই সংক্ষিপ্ত এবং কার্যকরী, এবং ফাংশনাল ও অবজেক্ট-অরিয়েন্টেড প্রোগ্রামিংয়ের সুবিধা একসাথে ব্যবহার করতে সক্ষম।
Read more