Bu qo’llanma — Scala dasturlash tili bilan tanishtiruvchi kirish. Men, Farrukh Sherkulov, siz bilan birga bu qiziqarli tilning asoslari bilan tanishaman. Scala — obyektga yo’naltirilgan va funksional dasturlashni bir tilda birlashtirgan, JVM ustida ishlaydigan zamonaviy til. U Java’ning barcha kuchini oladi, ustiga ixchamlik va ifodaviylik qo’shadi.
Scala — 2004-yilda Martin Odersky tomonidan yaratilgan, statik tipizatsiyalangan, JVM ustida ishlaydigan til. Nomi “Scalable Language” (kengaytiriladigan til) so’zlaridan olingan. U obyektga yo’naltirilgan va funksional paradigmalarni uyg’unlashtiradi.
Nega Scala?
Scala Java bilan to’liq mos ishlaydi — mavjud Java kutubxonalaridan bevosita foydalanish mumkin. Biroq u kodni ancha ixcham qiladi: Java’da o’nlab qator talab qiladigan vazifa Scala’da bir necha qatorga sig’adi. Aynan shuning uchun Scala katta ma’lumot (Big Data) sohasida — masalan, Apache Spark tizimida — keng qo’llaniladi.
Scala kuchli tipizatsiyalangan, ammo tur aniqlash (type inference) tufayli siz turni har doim ham yozib o’tirmaysiz — kompilyator uni o’zi aniqlaydi. Bu qat’iylik va qulaylikni birlashtiradi.
Birinchi dastur
An’anaviy birinchi qadam — ekranga xabar chiqarish. Scala’da bu quyidagicha ko’rinadi:
object Main {
def main(args: Array[String]): Unit = {
println("Salom, UzbekDevs!")
}
}
Salom, UzbekDevs!
object Main — Scala’da dasturning kirish nuqtasini o’z ichiga oluvchi obyekt. def main — asosiy metod, println esa ekranga xabar chiqaradi. E’tibor bering: Scala’da nuqta-vergul majburiy emas — bu kodni tozaroq qiladi.
val va var — o’zgaruvchilar
Scala’da ikki xil o’zgaruvchi bor. Ularni jadvalda ko’ramiz:
| Kalit so’z | O’zgartirish | Tavsiya |
|---|---|---|
val |
mumkin emas (o’zgarmas) | asosiy tanlov |
var |
mumkin (o’zgaruvchan) | zarur bo’lganda |
Amalda:
object Main {
def main(args: Array[String]): Unit = {
val ism = "Master Sherkulov" // o'zgarmas
var yosh = 30 // o'zgaruvchan
yosh = 31
println(ism + ", " + yosh)
}
}
Master Sherkulov, 31
Diqqat: val ism da tur yozilmadi, biroq Scala uni String deb o’zi aniqladi (type inference). Funksional dasturlashda o’zgarmas val afzal ko’riladi.
Funksiya — ixcham va kuchli
Scala funksiyalari juda ixcham yoziladi. Ikki sonni qo’shadigan funksiya:
object Main {
def yigindi(a: Int, b: Int): Int = a + b
def main(args: Array[String]): Unit = {
println(yigindi(15, 27))
}
}
42
def yigindi(a: Int, b: Int): Int = a + b — butun jingalak qavs va returnsiz, bir qatorda funksiya. Bu Scala’ning ifodaviyligini ko’rsatadi: funksiya tanasi shunchaki bir ifoda bo’lsa, uni to’g’ridan-to’g’ri = dan keyin yozamiz.
Kompilyatsiya va ishga tushirish
Scala kodi JVM ustida ishlaydi. Faylni scalac bilan kompilyatsiya qilib, scala bilan ishga tushiramiz:
scalac Main.scala
scala Main
Salom, UzbekDevs!
Scala JVM ustida ishlagani uchun uning natijasi ham Java bayt-kodi bo’ladi — ya’ni Scala va Java kodini bir loyihada birga ishlatish mumkin.
Xulosa
Bu kirish qismida Scala nima ekanini, uning Java bilan uyg’unligini va Big Data sohasidagi o’rnini, birinchi dasturning tuzilishini, val/var o’zgaruvchilarni, ixcham funksiyalar va kompilyatsiya jarayonini ko’rib chiqdik. Scala — obyektga yo’naltirilgan va funksional dunyoni birlashtirgan kuchli til.