AXV

Kotlin: val, var va ma’lumot turlari

O‘zgaruvchilar, turlar, String shablonlari va konvertatsiya

9-sinfAndroid dasturlash4-hafta · 11-dars

Bugun nimalarni o‘rganamiz?

val va var

O‘zgarmas va o‘zgaruvchan

6 ta tur

Int, Double, Float, Boolean, Char, String

Shablon va konvertatsiya

$ism, ${a + b}, toInt()

01

Kotlin nega 1-o‘rinda?

JetBrains yaratdi, Google 2017-yilda tavsiya qildi

Kotlinning 3 afzalligi

Qisqa

Java’dagi 20 qator - Kotlinda 5 qator

Null-safety

NullPointerException xatosining oldini oladi

Java bilan mos

Bitta loyihada ikkala til birga ishlaydi

0
Google tavsiyasi
0%
Java bilan moslik
02

val va var

Qutini muhrlaymizmi yoki ochiq qoldiramizmi?

O‘zgaruvchi - nomli quti

val pi 3.14159 o‘zgarmas (read-only) var ball 85 92 o‘zgaruvchan (mutable)

val va var: kodda


val pi = 3.14159
var ball = 85
        

val va var: kodda


val pi = 3.14159
var ball = 85
// pi = 3.14   -> XATO: Val cannot be reassigned
ball = 92      // to'g'ri: var o'zgaradi
        

Qaysi birini tanlaymiz?

Avval val

Har doim val dan boshlang: tasodifiy o‘zgarishlar bo‘lmaydi

Kerak bo‘lsa var

Qiymat haqiqatan o‘zgaradigan bo‘lsa: ball, hisoblagich, quvvat foizi

Natija

Dastur xavfsizroq, xatolar kamroq

Mini-test

Qaysi qiymat uchun var kerak?

Quvvat foizi doim o‘zgarib turadi - var. Qolganlari o‘zgarmaydi - val.
03

Ma’lumot turlari

Kotlinda hamma tur katta harf bilan boshlanadi

6 ta asosiy tur

Intval yosh = 15 Double12500.50 Float4.5f Booleantrue / false Char'A' String"Android"

Turni yozamizmi?

Aniq tur

val yosh: Int = 15
val nom: String = "Android"
VS

Type inference

val shahar = "Toshkent" -> String
val yil = 2026 -> Int

Kotlin qiymatga qarab turni o‘zi aniqlaydi. Tur keyin o‘zgarmaydi.

Turini toping. Bosing

9.99

bosing

Double

'7'

bosing

Char - son emas, belgi

"7"

bosing

String - matn

04

String shablonlari

Matn ichiga qiymat joylash: $

Shablon qanday ishlaydi?

"Ismim $ism, kelasi yil ${yosh + 1} yoshda" Sanjar 16 + 1 = 17

Shablon: kodda


val ism = "Sanjar"
val yosh = 16
println("Mening ismim $ism, yoshim $yosh da.")
println("Kelasi yili men ${yosh + 1} yoshga to'laman.")
        

Bashorat qiling

val a = 7; val b = 3
println("$a + $b") nima chiqaradi?

Har bir o‘zgaruvchi alohida qo‘yildi. Yig‘indi uchun ${a + b} kerak.

Turlarni aylantirish


val matn1 = "45"
val matn2 = "12"
val son1 = matn1.toInt()
val son2 = matn2.toInt()
println(son1 + son2)       // 57
println(matn1 + matn2)     // 4512 - matnlar ulandi
        

toInt()

matn -> butun son

toDouble()

-> o‘nlik son

toString()

-> matn

Odatiy xatolar

val ni o‘zgartirish

Val cannot be reassigned

Kichik harf

int emas, Int

"abc".toInt()

NumberFormatException

Amaliy topshiriq 15 daqiqa

OsonIsm (val), yosh (var), bo‘y (Double), Boolean - bitta println bilan chiqaring.
O'rtaval ball = 70; ball = ball + 15 - xatoni tuzating.
Qiyin"45" va "12" ni songa o‘tkazib, yig‘indi va ko‘paytmani chiqaring.

Xulosa

Bugun o‘rgandik

val va var, 6 ta tur, type inference, $ shablonlari, toInt(), toDouble(), toString().

Uyga vazifa

Smartfon ma’lumotlari, o‘rtacha baho, 12% QQS hisoblash.

Keyingi dars: if va when shart operatorlari.