Junior
Explicați cum sunt structurate pachetele și modulele în Kotlin.
sobes.tech AI
Răspuns de la AI
Pachetele sunt utilizate pentru organizarea codului, prevenirea conflictelor de nume și îmbunătățirea lizibilității. Sunt declarate cu cuvântul cheie package la începutul fișierului.
Modulele sunt colecții de surse Kotlin, scripturi de construire, resurse și setări ale proiectului. Sunt utilizate pentru compilare, execuție, testare și implementare. În proiectele IntelliJ IDEA, un modul corespunde unui modul IDE; în Gradle — unui proiect rădăcină sau subproiect.
Diferențe:
- Nivel de organizare: Pachetele la nivel de cod sursă, modulele la nivel de compilare a proiectului.
- Scop: Pachetele pentru gruparea logică a codului, modulele pentru gestionarea dependențelor, compilare și implementare.
- Hierarhie: Pachetele formează o ierarhie cu puncte (de exemplu,
com.example.util), modulele pot avea o ierarhie (subproiecte în Gradle) sau pot fi independente. - Dependențe: Sunt indicate între module, nu între pachete.
Exemplu de pachet:
// Fișier: Util.kt
package com.example.util
fun formatName(firstName: String, lastName: String): String {
return "$firstName $lastName"
}
Utilizarea pachetului:
package com.example.app
import com.example.util.formatName
fun main() {
val fullName = formatName("John", "Doe")
println(fullName)
}
Exemplu de structură de proiect cu module (Gradle):
myproject/
├── app/ // Modul de aplicație
│ ├── build.gradle.kts
│ └── src/
│ └── main/kotlin/com/example/app/Main.kt
└── util/ // Modul utilitar
├── build.gradle.kts
└── src/
└── main/kotlin/com/example/util/Util.kt
În app/build.gradle.kts, va fi indicată dependența de modulul util:
// app/build.gradle.kts
plugins {
kotlin("jvm")
}
dependencies {
implementation(project(":util")) // Dependență de modulul util
}