Sobes.tech
Junior

Kotlin-də paketlər və modullar necə qurulmuşdur, izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

Paketlər kodun təşkili, adların toqquşmasının qarşısını alma və oxunaqlılığı yaxşılaşdırmaq üçün istifadə olunur. Onlar faylın əvvəlində package açar sözü ilə elan edilir.

Modullar Kotlin mənbələri, quruluş skriptləri, resurslar və layihə tənzimləmələrinin toplusudur. Onlar tərtib, icra, test və yerləşdirmə üçün istifadə olunur. IntelliJ IDEA layihələrində modul IDE moduluna uyğun gəlir; Gradle-də isə kök layihə və ya alt layihə ola bilər.

Fərqlər:

  • Təşkilati səviyyə: Paketlər mənbə kod səviyyəsində, modullar isə layihənin tərtib səviyyəsində.
  • Məqsəd: Paketlər məntiqi qruplama üçün, modullar isə asılılıqları idarə etmək, tərtib və yerləşdirmə üçün.
  • Hierarxiya: Paketlər nöqtə ilə (məsələn, com.example.util) hierarxiya yaradır, modullar isə hierarxiyaya malik ola bilər (Gradle-də alt layihələr) və ya müstəqil ola bilər.
  • Asılılıqlar: Asılılıqlar modullar arasında göstərilir, paketlər arasında deyil.

Paket nümunəsi:

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

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

Paketin istifadəsi:

package com.example.app

import com.example.util.formatName

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

Modullarla layihə strukturu nümunəsi (Gradle):

myproject/
├── app/          // Tətbiq modulu
│   ├── build.gradle.kts
│   └── src/
│       └── main/kotlin/com/example/app/Main.kt
└── util/         // Yardımçı modulu
    ├── build.gradle.kts
    └── src/
        └── main/kotlin/com/example/util/Util.kt

app/build.gradle.kts faylında util moduluna asılılıq göstəriləcək:

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

dependencies {
    implementation(project(":util")) // Util moduluna asılılıq
}