Sobes.tech
Junior

Paaiškinkite, kaip sukurti paketai ir moduliai Kotlin.

sobes.tech AI

Atsakymas iš AI

Rinkiniai naudojami kodo organizavimui, vardų konfliktų išvengimui ir skaitomumo gerinimui. Jie deklaruojami naudojant raktinį žodį package pradžioje.

Moduliai — tai Kotlin šaltinio kodų, statybos scenarijų, išteklių ir projekto nustatymų rinkiniai. Jie naudojami kompiliacijai, vykdymui, testavimui ir diegimui. IntelliJ IDEA projektuose modulis atitinka IDE modulį; Gradle'e — pagrindinį projektą arba subprojektą.

Skirtumai:

  • Organizacijos lygis: Paketai – kodo lygmenyje, moduliai – projekto kūrimo lygmenyje.
  • Paskirtis: Paketai skirti loginiam kodo grupavimui, moduliai – priklausomybių, kompiliacijos ir diegimo valdymui.
  • Hierarchija: Paketai sudaro hierarchiją naudodami tašką (pvz., com.example.util), moduliai gali turėti hierarchiją (subprojektus Gradle) arba būti nepriklausomi.
  • Priklausomybės: priklausomybės nurodomos tarp modulių, o ne paketų.

Paketų pavyzdys:

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

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

Paketų naudojimas:

package com.example.app

import com.example.util.formatName

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

Projekto struktūros pavyzdys su moduliais (Gradle):

myproject/
├── app/          // Programos modulis
│   ├── build.gradle.kts
│   └── src/
│       └── main/kotlin/com/example/app/Main.kt
└── util/         // Naudotojų moduliai
    ├── build.gradle.kts
    └── src/
        └── main/kotlin/com/example/util/Util.kt

app/build.gradle.kts nurodys priklausomybę nuo util modulio:

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

dependencies {
    implementation(project(":util")) // priklausomybė nuo util modulio
}