1-bo‘lim
Kotlin bilan tanishuv
Kotlin ni kim va nima uchun yaratgan, nomi qayerdan kelgan, Java bilan qanday munosabatda va birinchi dastur qanday ishlaydi.
Ushbu bo‘lim mundarijasi
Kotlin - JetBrains kompaniyasi yaratgan zamonaviy dasturlash tili.
U Java ishlaydigan joyda ishlaydi, lekin ancha qisqa yoziladi va eng
ko'p uchraydigan xatolarning bir turini butunlay yo'q qiladi.
2019-yildan beri Google Android dasturlash uchun aynan shu tilni tavsiya qiladi.
Birinchi dastur #
fun main() {
println("Salom, dunyo!")
}
Salom, dunyo!
Ikki qator. Sinf yo'q, public static void yo'q, nuqtali vergul yo'q.
Java da xuddi shu dastur shunday ko'rinadi:
public class Salom {
public static void main(String[] args) {
System.out.println("Salom, dunyo!");
}
}
Beshta qator va uchta tushuncha - sinf, statik metod, massiv - hali hech narsa o'rganmasdan turib.
Nomi qayerdan kelgan #
Kotlin - Sankt-Peterburg yaqinidagi, Fin ko'rfazidagi kichik orol. JetBrains ning asosiy ishlab chiqish markazi o'sha shaharda joylashgan edi.
Bu tasodifiy tanlov emas, balki an'anaga ergashish: Java ham
Indoneziyadagi orol nomi. Kotlin jamoasi "Java oroldan nom olgan
bo'lsa, biz ham shunday qilamiz" degan.
Til birinchi marta 2011-yil iyulda taqdim etilganda, jamoa nomni tanlashda faqat bitta talab qo'ygan: uni aytish oson bo'lsin va qidiruvda boshqa narsa bilan aralashmasin.
Uni kim yaratgan #
Andrey Breslav (1984-)
Kotlin ning bosh me'mori. Rossiyalik dasturchi. 2010-yildan 2020-yilgacha `JetBrains` da Kotlin jamoasini boshqargan.
Uning maqsadi sodda edi: JetBrains ning o'z dasturchilari Java da juda ko'p ortiqcha kod yozayotgan edi. Ular mavjud tillarni ko'rib chiqishdi, lekin hech biri ikki talabni birdaniga bajarmadi - Java bilan to'liq ishlash va tez kompilyatsiya.
Shuning uchun o'zlari yozishga qaror qilishdi. 2020-yildan keyin jamoani Roman Elizarov boshqardi - korutinlar me'mori.
JetBrains - IntelliJ IDEA muharririni ishlab chiqadigan kompaniya.
Ularning mahsulotlari million qator Java kodidan iborat edi.
Yangi tilga o'tish ular uchun katta tavakkal: agar til Java bilan mukammal ishlamasa, mavjud kodning hammasini qaytadan yozish kerak bo'lardi.
Aynan shuning uchun Kotlin ning birinchi qoidasi - Java bilan to'liq muvofiqlik. Kotlin fayli Java sinfini chaqira oladi, Java fayli esa Kotlin sinfini. Ikkalasi bitta loyihada yonma-yon yashay oladi.
Vaqt chizig'i #
Nima uchun Kotlin #
Uchta asosiy sabab bor. Har birini keyingi bo'limlarda batafsil ko'ramiz, hozircha ta'mini tatib ko'ring.
1. Kam kod #
data class Talaba(val ism: String, val ball: Int)
fun main() {
val t = Talaba("Malika", 88)
println(t)
println(t.ball)
val nusxa = t.copy(ball = 95)
println(nusxa)
println(t == Talaba("Malika", 88))
}
Talaba(ism=Malika, ball=88)
88
Talaba(ism=Malika, ball=95)
true
Bitta data class qatori konstruktor, toString, equals,
hashCode va copy ni birdaniga beradi. Java da bu ellikka yaqin
qator bo'lardi.
2. Null xavfsizligi #
fun main() {
val bor: String = "matn"
val yoq: String? = null
println(bor.length)
println(yoq?.length)
println(yoq?.length ?: -1)
}
4
null
-1
Diqqat: String va String? - bu ikki xil tur. Birinchisiga
null berib bo'lmaydi, ikkinchisiga esa berish mumkin, lekin uni
tekshirmasdan ishlatib bo'lmaydi.
1965-yilda null tushunchasini kiritgan Toni Hoar keyinchalik
uni "mening bir milliard dollarlik xatom" deb atagan: shundan beri
u son-sanoqsiz dastur qulashiga sabab bo'lgan.
Kotlin bu muammoni kompilyatsiya paytida hal qiladi. null
bo'lishi mumkin bo'lgan qiymatni tekshirmasdan ishlatsangiz, dastur
ishga ham tushmaydi.
Bu Kotlin ning eng muhim afzalligi va 8-bo'lim butunlay shunga bag'ishlangan.
3. Java bilan yonma-yon #
Kotlin kodi Java kutubxonalarini to'g'ridan-to'g'ri chaqiradi:
import java.time.LocalDate
fun main() {
val sana = LocalDate.of(2026, 9, 12)
println(sana.year)
println(sana.plusDays(20))
println(sana.dayOfWeek)
}
2026
2026-10-02
SATURDAY
Bu yerda hech qanday "ko'prik" yo'q - LocalDate Java ning standart
sinfi va Kotlin uni o'zinikidek ishlatadi.
Kod qanday ishga tushadi #
Kotlin qayerda ishlatiladi #
| Soha | Izoh |
|---|---|
| Android | Google ning rasmiy tavsiyasi; yangi loyihalar aksariyat shu tilda |
| Server | Spring Boot va Ktor bilan veb xizmatlar |
| Ko'p platformali | Bitta mantiqni Android va iOS uchun ulashish |
| Ma'lumotlar tahlili | Kotlin daftarlari (notebooks) |
Bu darslik Kotlin ni noldan o'rgatadi - Java bilmasangiz ham to'liq tushunasiz.
Lekin ikkalasi bir platformada ishlagani uchun, internetdagi ko'p javoblar Java da yozilgan bo'ladi. Java sintaksisini tanish qidiruvni ancha osonlashtiradi.
Agar Java ni bilsangiz - bu darslikni "Java dan Kotlin ga ko'chish" qo'llanmasi sifatida ham o'qish mumkin.
Nuqtali vergul haqida #
fun main() {
val a = 5
val b = 10;
println(a + b);
println("nuqtali vergulsiz ham ishlaydi")
}
15
nuqtali vergulsiz ham ishlaydi
Nuqtali vergul ixtiyoriy. U ishlaydi, lekin Kotlin uslubida yozilmaydi. Bu darslikda ham ishlatmaymiz.
Bu darslikdagi har bir output bloki haqiqatan ishga tushirilgan
dasturning chiqishi. Qo'lda yozilmagan.
Ya'ni nusxa ko'chirib ishga tushirsangiz, aynan shu natijani olasiz. Agar boshqacha chiqsa - bu bobdagi xato emas, sizning muhitingizda farq bor degani. Keyingi bo'limda muhitni to'g'ri sozlaymiz.
- Kotlin nomi qayerdan olinganini va nega shunday tanlanganini yozing.
- Tilni kim va qaysi kompaniyada boshqargan?
- JetBrains nima uchun o'ziga yangi til yozgan - ikkita sabab ayting.
- Google Kotlin ni qaysi yili qabul qilgan va qaysi yili birinchi o'ringa qo'ygan?
data classbir qatorda nimalarni beradi? To'rttasini sanang.StringvaString?orasidagi farqni tushuntiring.?.va?:belgilarining vazifasini o'z so'zingiz bilan yozing.- Kotlin kodi qaysi uchta manzilga kompilyatsiya qilinishi mumkin?
- Kotlin dan Java sinfini chaqirish uchun nima kerak?
- Nuqtali vergul Kotlin da majburiymi? Javobingizni sinab tekshiring.
Xulosa #
- Kotlin -
JetBrainsyaratgan til; nomi Sankt-Peterburg yaqinidagi orol nomidan olingan, xuddiJavakabi. - Uni Andrey Breslav boshchiligidagi jamoa yaratgan; 2020-yildan keyin jamoani Roman Elizarov boshqargan.
- Asosiy maqsad - Java bilan to'liq muvofiqlik va kamroq kod.
- 2016 - 1.0 versiya, 2017 - Google qabul qildi, 2019 - Android uchun birinchi tanlov.
data classbitta qatorda konstruktor,toString,equals,hashCodevacopyberadi.- Null xavfsizligi - tilning eng muhim afzalligi:
StringvaString?ikki xil tur. - Kotlin JVM, JavaScript va Native ga kompilyatsiya qilinadi; biz JVM bilan ishlaymiz.
- Nuqtali vergul ixtiyoriy va odatda yozilmaydi.
Keyingi bo'limda muhitni sozlab, birinchi loyihani yaratamiz.
O‘qish tarixini saqlamoqchimisiz?
Tizimga kirsangiz, tugatgan bo‘limlaringiz saqlanadi va qoldirgan joyingizdan davom etasiz.
Xatolik topdingizmi?
Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.