Sobes.tech
Junior

Kotlin'da paketlar va modullar qanday tuzilganligini tushuntiring.

sobes.tech AI

AIdan javob

Paketlar kodni tashkil qilish, nomlar to‘qnashuvlarini oldini olish va o‘qilishi yaxshilash uchun ishlatiladi. Ular fayl boshida package kalit so‘zi bilan e’lon qilinadi.

Modullar Kotlin manbalar, qurilish skriptlari, resurslar va loyiha sozlamalarining to‘plamidir. Ular kompilatsiya qilish, ishga tushirish, test qilish va joylashtirish uchun ishlatiladi. IntelliJ IDEA loyihalarida modul IDE moduliga mos keladi; Gradle’da esa asosiy loyiha yoki kichik loyiha bo‘lishi mumkin.

Farqlar:

  • Tashkiliy daraja: Paketlar manba kod darajasida, modullar esa loyiha kompilatsiyasi darajasida.
  • Maqsad: Paketlar mantiqiy guruhlash uchun, modullar esa bog‘liqliklarni boshqarish, kompilatsiya va joylashtirish uchun.
  • Hierarxiya: Paketlar nuqta bilan (masalan, com.example.util) hierarxiya hosil qiladi, modullar esa hierarxiyaga ega bo‘lishi mumkin (Gradle’dagi kichik loyihalar) yoki mustaqil bo‘lishi mumkin.
  • Bog‘liqliklar: Bog‘liqliklar modullar o‘rtasida ko‘rsatiladi, paketlar o‘rtasida emas.

Paket misoli:

// Fayl: Util.kt
package com.example.util

fun formatName(firstName: String, lastName: String): String {
    return "$firstName $lastName"
}

Paketdan foydalanish:

package com.example.app

import com.example.util.formatName

fun main() {
    val fullName = formatName("John", "Doe")
    println(fullName)
}

Modullar bilan loyiha tuzilmasi misoli (Gradle):

myproject/
├── app/          // Ilova moduli
│   ├── build.gradle.kts
│   └── src/
│       └── main/kotlin/com/example/app/Main.kt
└── util/         // Utility moduli
    ├── build.gradle.kts
    └── src/
        └── main/kotlin/com/example/util/Util.kt

app/build.gradle.kts faylida util moduliga bog‘liqlik ko‘rsatiladi:

// app/build.gradle.kts
plugins {
    kotlin("jvm")
}

dependencies {
    implementation(project(":util")) // util moduliga bog‘liqlik
}