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.

🕑 10 daqiqa o‘qish 📄 861 so‘z 👁 0 marta ko‘rilgan
Ushbu bo‘lim mundarijasi
  1. Birinchi dastur
  2. Nomi qayerdan kelgan
  3. Uni kim yaratgan
  4. Vaqt chizig'i
  5. Nima uchun Kotlin
  6. 1. Kam kod
  7. 2. Null xavfsizligi
  8. 3. Java bilan yonma-yon
  9. Kod qanday ishga tushadi
  10. Kotlin qayerda ishlatiladi
  11. Nuqtali vergul haqida
  12. Xulosa

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 #

KOTLIN
fun main() {
    println("Salom, dunyo!")
}
Natija
Salom, dunyo!

Ikki qator. Sinf yo'q, public static void yo'q, nuqtali vergul yo'q.

Java da xuddi shu dastur shunday ko'rinadi:

Java
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 - bu orol nomi

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 #

Kt

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.

Nega kompaniya o'ziga til yozadi

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 #

Kotlin ning rivojlanishi 2011 E'lon JetBrains 2012 Ochiq kod Apache 2 2016 1.0 versiya barqaror 2017 Google qabul qildi Android I/O 2019 Android uchun 1-o'rin "Kotlin-first" 2024 2.0 va K2 yangi kompilyator E'londan Google tavsiyasigacha sakkiz yil
2017-yilgi burilish: Google Android uchun rasman qabul qildi

Nima uchun Kotlin #

Uchta asosiy sabab bor. Har birini keyingi bo'limlarda batafsil ko'ramiz, hozircha ta'mini tatib ko'ring.

1. Kam kod #

KOTLIN
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))
}
Natija
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 #

KOTLIN
fun main() {
    val bor: String = "matn"
    val yoq: String? = null

    println(bor.length)
    println(yoq?.length)
    println(yoq?.length ?: -1)
}
Natija
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.

Bir milliard dollarlik xato

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:

KOTLIN
import java.time.LocalDate

fun main() {
    val sana = LocalDate.of(2026, 9, 12)
    println(sana.year)
    println(sana.plusDays(20))
    println(sana.dayOfWeek)
}
Natija
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 #

Bitta til - bir nechta manzil Misol.kt siz yozgan kod JVM server, Android JavaScript brauzer Native iOS, Linux Bu darslikda JVM yo'nalishida ishlaymiz - eng keng tarqalgani
Kotlin kodi JVM bayt-kodiga, JavaScript'ga yoki mashina kodiga aylanishi mumkin

Kotlin qayerda ishlatiladi #

SohaIzoh
AndroidGoogle ning rasmiy tavsiyasi; yangi loyihalar aksariyat shu tilda
ServerSpring Boot va Ktor bilan veb xizmatlar
Ko'p platformaliBitta mantiqni Android va iOS uchun ulashish
Ma'lumotlar tahliliKotlin daftarlari (notebooks)
Java ni bilish shart emas, lekin foyda beradi

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 #

KOTLIN
fun main() {
    val a = 5
    val b = 10;
    println(a + b);
    println("nuqtali vergulsiz ham ishlaydi")
}
Natija
15
nuqtali vergulsiz ham ishlaydi

Nuqtali vergul ixtiyoriy. U ishlaydi, lekin Kotlin uslubida yozilmaydi. Bu darslikda ham ishlatmaymiz.

Har bir natija haqiqiy

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.

Amaliy topshiriq
  1. Kotlin nomi qayerdan olinganini va nega shunday tanlanganini yozing.
  2. Tilni kim va qaysi kompaniyada boshqargan?
  3. JetBrains nima uchun o'ziga yangi til yozgan - ikkita sabab ayting.
  4. Google Kotlin ni qaysi yili qabul qilgan va qaysi yili birinchi o'ringa qo'ygan?
  5. data class bir qatorda nimalarni beradi? To'rttasini sanang.
  6. String va String? orasidagi farqni tushuntiring.
  7. ?. va ?: belgilarining vazifasini o'z so'zingiz bilan yozing.
  8. Kotlin kodi qaysi uchta manzilga kompilyatsiya qilinishi mumkin?
  9. Kotlin dan Java sinfini chaqirish uchun nima kerak?
  10. Nuqtali vergul Kotlin da majburiymi? Javobingizni sinab tekshiring.

Xulosa #

  • Kotlin - JetBrains yaratgan til; nomi Sankt-Peterburg yaqinidagi orol nomidan olingan, xuddi Java kabi.
  • 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 class bitta qatorda konstruktor, toString, equals, hashCode va copy beradi.
  • Null xavfsizligi - tilning eng muhim afzalligi: String va String? 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.

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.