Darsliklar Kotlin O’zgarmaslar

Kotlin Kotlin O’zgarmaslar

O’zgarmaslar (val va const) — bir marta belgilangach, qayta o’zgartirib bo’lmaydigan qiymatlar. Kotlin ikki xil o’zgarmas beradi: val (ish vaqtida) va const val (kompilyatsiya vaqtida). Doimiy qiymatlar uchun ularni ishlatish kodni xavfsiz va aniq qiladi.

val va const valo’zgarmas qiymat e’lon qiluvchi kalit so’zlar. val ish vaqtida, const val esa kompilyatsiya vaqtida aniqlanadi.

val — o’zgarmas o’zgaruvchi

val bilan e’lon qilingan qiymatni bir marta bergach, o’zgartirib bo’lmaydi:

fun main() {
    val pi = 3.14159
    val kunlar = 7
    println("Pi: $pi, haftada $kunlar kun")
}
Pi: 3.14159, haftada 7 kun

Agar keyin pi = 3.0 desangiz, Kotlin xato beradi. val — Kotlin’da o’zgarmaslikning asosiy vositasi.

const val — kompilyatsiya doimiysi

const val yanada qat’iyroq: uning qiymati kompilyatsiya vaqtida ma’lum bo’lishi kerak. U faqat funksiyadan tashqarida (yuqori darajada) e’lon qilinadi:

const val KOMPANIYA = "UzbekDevs"
const val MAX_QIYMAT = 100

fun main() {
    println(KOMPANIYA)
    println("Limit: $MAX_QIYMAT")
}
UzbekDevs
Limit: 100

const val — matn, son kabi o’zgarmas, oldindan ma’lum qiymatlar uchun. U funksiya ichida ishlatilmaydi.

val va const val farqi

Ikki kalit so’zning farqini jadvalda ko’ramiz:

Xususiyat val const val
Qachon aniqlanadi ish vaqtida kompilyatsiya vaqtida
Hisoblangan qiymat mumkin mumkin emas
Qayerda har joyda faqat yuqori daraja

val ish vaqtida hisoblanadigan qiymatni ham qabul qiladi (masalan, joriy vaqt), const val esa faqat oldindan ma’lum qiymatni.

Nega o’zgarmas ishlatish kerak?

O’zgarmasning ikki afzalligi bor: u xatoning oldini oladi va kodni o’qiladigan qiladi. Masalan, const val SOLIQ = 0.12 ni bir joyda o’zgartirsangiz, u butun kodda yangilanadi. Kotlin’da imkon bo’lsa val ni afzal ko’ring — ko’p o’zgaruvchilar aslida o’zgarmaydi.

Xulosa

Bu bo’limda val (ish vaqtida) va const val (kompilyatsiya vaqtida) o’zgarmaslarini, ularning farqini va afzalliklarini ko’rib chiqdik. Doimiy qiymat uchun val yoki const val ishlating. Keyingi darsda operatorlarga o’tamiz.