Sobes.tech
Junior

Magyarázza el, hogyan épülnek fel a csomagok és modulok Kotlinben.

sobes.tech MI

Válasz az MI-től

A csomagokat a kód szervezésére, a névütközések elkerülésére és az olvashatóság javítására használják. A fájl elején a package kulcsszóval deklarálják.

A modulok Kotlin források, build szkriptek, erőforrások és projektbeállítások gyűjteményei. A fordításhoz, futtatáshoz, teszteléshez és telepítéshez használják őket. IntelliJ IDEA projektekben a modul megfelel egy IDE-modulnak; Gradle esetén pedig egy gyökér- vagy alkönyvtárnak.

Különbségek:

  • Szervezési szint: A csomagok a forráskód szintjén, a modulok a projekt fordítási szintjén.
  • Cél: A csomagok a kód logikus csoportosítására szolgálnak, a modulok a függőségek, fordítás és telepítés kezelésére.
  • Hierarchia: A csomagok pontokkal (pl. com.example.util) hierarchiát alkotnak, a modulok hierarchiával (Gradle alprojektek) vagy függetlenek lehetnek.
  • Függőségek: A függőségek a modulok között vannak megadva, nem a csomagok között.

Példa csomagra:

// Fájl: Util.kt
package com.example.util

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

A csomag használata:

package com.example.app

import com.example.util.formatName

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

Példa projektstruktúrára modulokkal (Gradle):

myproject/
├── app/          // Alkalmazás modul
│   ├── build.gradle.kts
│   └── src/
│       └── main/kotlin/com/example/app/Main.kt
└── util/         // Segédmodul
    ├── build.gradle.kts
    └── src/
        └── main/kotlin/com/example/util/Util.kt

A app/build.gradle.kts fájlban meg kell adni a util modulra való függőséget:

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

dependencies {
    implementation(project(":util")) // Függőség a util modultól
}