Sobes.tech
Junior

Vysvětlete, jak jsou v Kotlinu uspořádány balíčky a moduly.

sobes.tech AI

Odpověď od AI

Balíčky se používají k organizaci kódu, prevenci konfliktů jmen a zlepšení čitelnosti. Deklarují se klíčovým slovem package na začátku souboru.

Moduly jsou soubory Kotlin, build skripty, zdroje a nastavení projektu. Používají se pro kompilaci, spuštění, testování a nasazení. V projektech IntelliJ IDEA odpovídá modul IDE modulu; v Gradle je to hlavní nebo podprojekt.

Rozdíly:

  • Úroveň organizace: Balíčky na úrovni zdrojového kódu, moduly na úrovni sestavení projektu.
  • Účel: Balíčky pro logické seskupení kódu, moduly pro správu závislostí, kompilaci a nasazení.
  • Hierarchie: Balíčky tvoří hierarchii pomocí teček (například com.example.util), moduly mohou mít hierarchii (subprojekty v Gradle) nebo být nezávislé.
  • Závislosti: Závislosti jsou uváděny mezi moduly, nikoli mezi balíčky.

Příklad balíčku:

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

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

Použití balíčku:

package com.example.app

import com.example.util.formatName

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

Příklad struktury projektu s moduly (Gradle):

myproject/
├── app/          // Aplikační modul
│   ├── 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

V souboru app/build.gradle.kts bude uvedena závislost na modulu util:

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

dependencies {
    implementation(project(":util")) // Závislost na modulu util
}