Sobes.tech
Junior

Тавзеҳ диҳед, ки чӣ гуна бастаҳо ва модулҳо дар Kotlin ташкил шудаанд.

sobes.tech AI

Ҷавоб аз AI

Пакетҳо барои ташкил додани коди, пешгирии муноқишаҳои номҳо ва беҳтар кардани хонданӣ истифода мешаванд. Онҳо бо калиди package дар оғози файл эълон карда мешаванд.

Модулҳо маҷмӯи манбаъҳои Kotlin, скриптҳои сохтмон, захираҳо ва танзимоти лоиҳа мебошанд. Онҳо барои компилятсия, иҷро, санҷиш ва паҳнкунӣ истифода мешаванд. Дар лоиҳаҳои IntelliJ IDEA, модул ба модули IDE мувофиқат мекунад; дар Gradle — ба лоиҳаи асосӣ ё зерлоиҳа.

Фарқиятҳо:

  • Сатҳи ташкилот: Пакетҳо дар сатҳи манбаъ, модулҳо дар сатҳи сохтани лоиҳа.
  • Мақсад: Пакетҳо барои гурӯҳбандии мантиқии коди, модулҳо барои идоракунии вобастагиҳо, сохтмон ва паҳнкунӣ.
  • Иерархия: Пакетҳо бо нуқтаҳо (масалан, com.example.util) иерархия месозанд, модулҳо метавонанд иерархия дошта бошанд (зери лоиҳаҳо дар Gradle) ё мустақил бошанд.
  • Вобастагиҳо: Вобастагиҳо байни модулҳо нишон дода мешаванд, на байни пакетҳо.

Масали пакет:

// Файл: Util.kt
package com.example.util

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

Истифодаи пакети:

package com.example.app

import com.example.util.formatName

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

Масали сохтори лоиҳа бо модулҳо (Gradle):

myproject/
├── app/          // Модули барнома
│   ├── build.gradle.kts
│   └── src/
│       └── main/kotlin/com/example/app/Main.kt
└── util/         // Модули ёрдамчи
    ├── build.gradle.kts
    └── src/
        └── main/kotlin/com/example/util/Util.kt

Дар app/build.gradle.kts вобастагии модул util нишон дода мешавад:

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

dependencies {
    implementation(project(":util")) // Вобастагӣ ба модул util
}