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 val — o’zgarmas qiymat e’lon qiluvchi kalit so’zlar.
valish vaqtida,const valesa 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.