Junior
Kotlin-ში 'internal' წვდომის მოდიფიკატორი რა არის და როგორ გამოიყენება?
sobes.tech AI
პასუხი AI-სგან
Kotlin-ში internal შესვლის მოდიფიკატორი ნიშნავს, რომ განცხადება შესაბამის მოდულში ჩანს. მოდული შეიძლება იყოს Kotlin ფაილების ერთობლივი კომპილაცია, მაგალითად:
- Gradle მოდული (წყაროს კოდის ნაკრები)
- Maven მოდული
- Ant წყაროს კოდის ნაკრები
ეს სასარგებლოა მოდულის შიგნით განხორციელების დეტალების დამალვისთვის, რაც მათ სხვა მოდულების კოდისთვის მიუწვდომელს ხდის.
internal შეიძლება გამოყენებულ იქნას შემდეგ ელემენტებთან:
- კლასები
- ინტერფეისები
- ობიექტები (object)
- ფუნქციები
- თვისებები
- კონსტრუქტორები
გამოყენების მაგალითი:
// "module1" მოდული
package com.example.module1
internal class InternalClass {
internal fun internalFunction() {
// ეს კოდი მხოლოდ module1-ის შიგნით ჩანს
}
}
// ეს ობიექტიც მხოლოდ module1-ის შიგნით ჩანს
internal object InternalObject {
internal val internalProperty = "შიდა მნიშვნელობა"
}
// "module1" მოდული
package com.example.module1
fun someFunctionInModule1() {
val internalCls = InternalClass() // ხელმისაწვდომია
internalCls.internalFunction() // ხელმისაწვდომია
println(InternalObject.internalProperty) // ხელმისაწვდომია
}
// "module2" მოდული
package com.example.module2
import com.example.module1.InternalClass // კომპილაციის შეცდომა
import com.example.module1.InternalObject // კომპილაციის შეცდომა
fun someFunctionInModule2() {
// ვერ შექმნით InternalClass-ის მაგალითს ან ვერ მიუვალთ InternalObject-ს
// val internalCls = InternalClass() // მიუწვდომელია
// println(InternalObject.internalProperty) // მიუწვდომელია
}
მთავარი განსხვავება public (ყველგან ჩანს), private (მხოლოდ კლასის შიგნით) და protected (კლასის და მისი ქვესახეების შიგნით) შორის ის არის, რომ ეს განსაზღვრავს მოდულების დონეზე ხილვადობის დონეს.