Junior
Spiega come sono strutturati i pacchetti e i moduli in Kotlin.
sobes.tech AI
Risposta dell'AI
I pacchetti vengono utilizzati per organizzare il codice, prevenire conflitti di nomi e migliorare la leggibilità. Si dichiarano con la parola chiave package all'inizio del file.
I moduli sono insiemi di sorgenti Kotlin, script di build, risorse e configurazioni del progetto. Sono usati per compilare, eseguire, testare e distribuire. Nei progetti IntelliJ IDEA, un modulo corrisponde a un modulo IDE; in Gradle, a un progetto principale o subprogetto.
Differenze:
- Livello di organizzazione: Pacchetti a livello di codice sorgente, moduli a livello di compilazione del progetto.
- Scopo: Pacchetti per raggruppamenti logici di codice, moduli per gestire dipendenze, compilazione e distribuzione.
- Gerarchia: I pacchetti formano una gerarchia con punti (ad esempio,
com.example.util), i moduli possono avere una gerarchia (sottoprogetti in Gradle) o essere indipendenti. - Dipendenze: Le dipendenze sono indicate tra moduli, non tra pacchetti.
Esempio di pacchetto:
// File: Util.kt
package com.example.util
fun formatName(firstName: String, lastName: String): String {
return "$firstName $lastName"
}
Utilizzo del pacchetto:
package com.example.app
import com.example.util.formatName
fun main() {
val fullName = formatName("John", "Doe")
println(fullName)
}
Esempio di struttura di progetto con moduli (Gradle):
myproject/
├── app/ // Modulo applicativo
│ ├── build.gradle.kts
│ └── src/
│ └── main/kotlin/com/example/app/Main.kt
└── util/ // Modulo utilità
├── build.gradle.kts
└── src/
└── main/kotlin/com/example/util/Util.kt
Nel file app/build.gradle.kts, si indica la dipendenza dal modulo util:
// app/build.gradle.kts
plugins {
kotlin("jvm")
}
dependencies {
implementation(project(":util")) // Dipendenza dal modulo util
}