Sobes.tech
Junior

Εξηγήστε πώς είναι δομημένα τα πακέτα και τα modules στο Kotlin.

sobes.tech AI

Απάντηση από AI

Pakete përdoren për të organizuar kodin, për të parandaluar konflikte emrash dhe për të përmirësuar lexueshmërinë. Deklarohen me fjalën kyçe package në fillim të skedarit.

Modulet janë grupe burimesh Kotlin, skriptesh ndërtimi, burimesh dhe konfigurimesh të projektit. Përdoren për përpilim, ekzekutim, testim dhe shpërndarje. Në projektet IntelliJ IDEA, një modul i korrespondon një moduli IDE; në Gradle — një projekt kryesor ose nënprojekt.

Dallimet:

  • Niveli i organizimit: Paketet në nivelin e burimeve të kodit, modulet në nivelin e ndërtimit të projektit.
  • Qëllimi: Paketet për grupimin logjik të kodit, modulet për menaxhimin e varësive, ndërtimin dhe shpërndarjen.
  • Hierarkia: Paketet formojnë një hierarki me pika (p.sh., com.example.util), modulet mund të kenë hierarki (nënprojektet në Gradle) ose të jenë të pavarur.
  • Varësitë: Varësitë tregohen midis moduleve, jo midis paketave.

Shembull i paketës:

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

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

Përdorimi i paketës:

package com.example.app

import com.example.util.formatName

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

Shembull i strukturës së projektit me module (Gradle):

myproject/
├── app/          // Moduli i aplikacionit
│   ├── build.gradle.kts
│   └── src/
│       └── main/kotlin/com/example/app/Main.kt
└── util/         // Moduli i utilities
    ├── build.gradle.kts
    └── src/
        └── main/kotlin/com/example/util/Util.kt

app/build.gradle.kts, do të tregtohet varësia nga moduli util:

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

dependencies {
    implementation(project(":util")) // Varësi nga moduli util
}