प्रौद्योगिकी साझेदारी

स्काला भाषायाः आरम्भविषये लेखः

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

स्काला एकः आधुनिकः प्रोग्रामिंगभाषा अस्ति या वस्तु-उन्मुखस्य प्रोग्रामिंग् इत्यस्य विशेषतानां संयोजनेन कार्यात्मक-प्रोग्रामिंगस्य च संक्षिप्तं, स्केल-करणीयं, कुशलं च कोडं लिखितुं सम्भवं करोति

1. स्काला किम् ?

Scala (Scalable Language) इति वस्तु-उन्मुखं कार्यात्मकं च प्रोग्रामिंग-भाषा । इदं JVM (Java Virtual Machine) इत्यत्र चाल्यते, जावा इत्यनेन सह अत्यन्तं संगतम् अस्ति, जावा कोडेन सह च निर्विघ्नतया अन्तरक्रियां कर्तुं शक्नोति । आधुनिकप्रोग्रामिंगभाषायाः प्रकारानुमानं, प्रतिरूपमेलनं च इत्यादीनां विशेषतानां परिचयं कुर्वन् जावा इत्यस्य किञ्चित् वाक्पटुतां सम्बोधयितुं स्काला इत्यस्य डिजाइनं कृतम् आसीत् ।

2. Scala संस्थापयन्तु

Scala इत्यस्य उपयोगं आरभ्य भवद्भिः Scala compiler तथा sbt (Scala Build Tool) संस्थापनीयम् । भवान् तान् आधिकारिकस्कलादस्तावेजात् डाउनलोड् कृत्वा संस्थापयितुं शक्नोति ।

3. मूलभूतव्याकरणम्

३.१ नमस्कार, स्काला !

वयं सरलेन "नमस्ते, विश्वम्!"

object HelloScala {
  def main(args: Array[String]): Unit = {
    println("Hello, Scala!")
  }
}

अस्मिन् उदाहरणे वयं singleton object परिभाषयामःHelloScala, यस्मिन् कmainविधिः, जावाभाषायां यथा भवतिmainप्रक्रिया।printlnकन्सोल् मध्ये स्ट्रिंग् मुद्रयितुं उपयुज्यते ।

३.२ चराः नित्याः च

स्काला इत्यस्मिन् चराः द्वौ प्रकारौ स्तः : १.var(चर) तथाval(नियत)।

val name: String = "Scala"  // 常量
var age: Int = 10           // 变量

val country = "中国"
var year = 2024

valघोषितचराः अपरिवर्तनीयाः (जावायां सदृशाः) भवन्तिfinal),तथाvarघोषितचराः परिवर्तनशीलाः भवन्ति ।

३.३ कार्याणि

स्काला इत्यस्मिन् कार्यपरिभाषा अतीव संक्षिप्ताः सन्ति ।

def add(a: Int, b: Int): Int = {
  a   b
}

println(add(3, 5))  // 输出: 8
s

अत्र वयं नामकं सञ्चिकां परिभाषयामःaddएकं फंक्शन् यत् द्वौ पूर्णाङ्कस्य तर्कौ स्वीकृत्य तेषां योगं प्रत्यागच्छति ।

4. वस्तु-उन्मुखं प्रोग्रामिंग्

स्काला पूर्णतया वस्तु-उन्मुख-प्रोग्रामिंग् (OOP) समर्थयति ।

४.१ वर्गाः विषयाः च

सरलं वर्गं वस्तु च परिभाषयन्तु।

class Person(val name: String, var age: Int) {
  def greet(): Unit = {
    println(s"Hello, 我的名字: $name ,我的年龄是 $age。")
  }
}

val person = new Person("Alice", 25)
person.greet()

अस्मिन् उदाहरणे वयं क इति परिभाषयामःPersonclass, द्वौ गुणौ युक्तौnameतथाage, एकः विधिः चgreet

४.२ उत्तराधिकारः

स्काला इत्यस्मिन् उत्तराधिकारः जावा इत्यस्य सदृशः अस्ति ।

class Employee(name: String, age: Int, val company: String) extends Person(name, age) {
  override def greet(): Unit = {
    println(s"Hello, my name is $name, I work at $company, and I am $age years old.")
  }
}

val employee = new Employee("Bob", 30, "Google")
employee.greet()  // 输出: Hello, my name is Bob, I work at Google, and I am 30 years old.

वयं कEmployeeवर्गः, वंशजःPersonवर्गः अधिलिखितः चgreetप्रक्रिया।

5. कार्यात्मकं प्रोग्रामिंग्

स्काला अनेकानि कार्यात्मकप्रोग्रामिंगविशेषतानि समर्थयति, यथा उच्चक्रमस्य कार्याणि, प्रतिरूपमेलनं च ।

५.१ उच्चक्रमस्य कार्याणि

उच्चक्रमस्य कार्याणि तानि कार्याणि सन्ति ये अन्यकार्यं पैरामीटर् अथवा रिटर्न् फंक्शन् रूपेण स्वीकुर्वन्ति ।

def applyOperation(a: Int, b: Int, operation: (Int, Int) =