Junior
Објасните како су пакети и модули уређени у Kotlin-у.
sobes.tech АИ
Одговор од АИ
Paketi se koriste za organizaciju koda, sprečavanje konflikata imena i poboljšanje čitljivosti. Deklarišu se ključnom rečju package na početku fajla.
Moduli su skupovi Kotlin izvora, skripti za izgradnju, resursa i podešavanja projekta. Koriste se za kompilaciju, izvršavanje, testiranje i implementaciju. U IntelliJ IDEA projektima, modul odgovara IDE modulu; u Gradle-u — koren ili podprojekat.
Razlike:
- Nivo organizacije: Paketi na nivou izvornog koda, moduli na nivou izgradnje projekta.
- Svrha: Paketi za logičku grupisanje koda, moduli za upravljanje zavisnostima, kompilaciju i implementaciju.
- Hijerarhija: Paketi formiraju hijerarhiju pomoću tačaka (npr.
com.example.util), moduli mogu imati hijerarhiju (podprojekti u Gradle-u) ili biti nezavisni. - Zavisnosti: Zavisnosti se navode između modula, a ne između paketa.
Primer paketa:
// Fajl: Util.kt
package com.example.util
fun formatName(firstName: String, lastName: String): String {
return "$firstName $lastName"
}
Korišćenje paketa:
package com.example.app
import com.example.util.formatName
fun main() {
val fullName = formatName("John", "Doe")
println(fullName)
}
Primer strukture projekta sa modulima (Gradle):
myproject/
├── app/ // Modul aplikacije
│ ├── build.gradle.kts
│ └── src/
│ └── main/kotlin/com/example/app/Main.kt
└── util/ // Utility modul
├── build.gradle.kts
└── src/
└── main/kotlin/com/example/util/Util.kt
U app/build.gradle.kts će biti naznačena zavisnost od modula util:
// app/build.gradle.kts
plugins {
kotlin("jvm")
}
dependencies {
implementation(project(":util")) // Zavisnost od util modula
}