Məzmuna keç
Educora
Başlanğıc16 dəq2 / 14

Dəyişənlər, tiplər və sətirlər

`val` və `var` ilə dəyişən yarat, əsas tipləri və tipin avtomatik müəyyənləşdirilməsini öyrən, sətir şablonları ilə mətn qur.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • val və var arasındakı fərqi izah etmək
  • Int, Long, Double, Boolean, Char və String tiplərindən istifadə etmək
  • Hesab əməllərini yerinə yetirmək və tipləri bir-birinə çevirmək
  • $ və ${} ilə sətir şablonları yazmaq

Telefonundakı oyun sənin adını, xallarını, səviyyəni və səsin açıq olub-olmadığını yadda saxlayır. Bunlar müxtəlif növ məlumatlardır: mətn, tam ədəd, bəli/xeyr cavabı. Proqram belə məlumatları dəyişənlərdə saxlayır, Kotlin isə hər dəyişənin tipini diqqətlə izləyir ki, səhvən mətni ədədə bölməyəsən.

val və var

Kotlin-də dəyişən iki sözdən biri ilə yaradılır. val (value — qiymət) yalnız oxunan dəyişəndir: ona qiymət bir dəfə verilir və sonra dəyişdirilə bilməz. var (variable — dəyişən) isə istənilən vaxt yeni qiymət ala bilər. Qiymət vermək üçün = işarəsi işlədilir.

Kotlin
fun main() {
    val name = "Aysel"
    var score = 10
    println(name)
    println(score)
    score = score + 5
    score += 3
    println(score)
}
Gözlənilən nəticə
Aysel
10
18
score += 3 yazılışı score = score + 3 deməkdir.

Əsas tiplər və tipin avtomatik müəyyənləşdirilməsi

TipNümunəNə saxlayır
Int15, -3tam ədədlər (təxminən ±2,1 milyard)
Long8_000_000_000Lçox böyük tam ədədlər
Double3.14, 2.5kəsr ədədlər
Booleantrue, falsedoğru və ya yalan
Char'A'bir simvol, tək dırnaqda
String"Baku"mətn, qoşa dırnaqda

Tipi hər dəfə yazmaq lazım deyil: val age = 15 yazanda kompilyator özü başa düşür ki, age Int-dir. Buna tipin avtomatik müəyyənləşdirilməsi (type inference) deyilir. İstəsən, tipi iki nöqtədən sonra açıq da göstərə bilərsən: val age: Int = 15. Böyük ədədləri oxumaq asan olsun deyə rəqəmləri alt xətlə ayırmaq olar: 1_000_000.

Kotlin
fun main() {
    val age: Int = 15
    val height = 1.62
    val isStudent = true
    val grade = 'A'
    val worldPopulation = 8_000_000_000L
    println(age)
    println(height)
    println(isStudent)
    println(grade)
    println(worldPopulation)
}
Gözlənilən nəticə
15
1.62
true
A
8000000000
8 milyard Int-ə sığmır, ona görə sonuna L yazıb Long edirik.

Hesab əməlləri və tiplərin çevrilməsi

Kotlin-də +, -, *, / və qalığı tapan % əməlləri var. Diqqət: iki Int-in bölünməsinin nəticəsi də Int olur, kəsr hissə atılır — 7 / 2 3 verir. Kəsr nəticə lazımdırsa, ədədlərdən biri Double olmalıdır. Kotlin tipləri özbaşına çevirmir, bunu toInt(), toDouble(), toString() kimi funksiyalarla açıq etmək lazımdır.

Kotlin
fun main() {
    val apples = 7
    val kids = 2
    println(apples / kids)
    println(apples % kids)
    println(apples / 2.0)
    println(apples.toDouble() / kids)
    val price = "25".toInt()
    println(price * 2)
    println(9.99.toInt())
}
Gözlənilən nəticə
3
1
3.5
3.5
50
9
toInt() kəsr hissəni yuvarlaqlaşdırmır, sadəcə atır: 9.99 → 9.

Sətirlər və şablonlar

Mətni parçalardan + ilə yığmaq olar, amma Kotlin-də daha rahat yol var — sətir şablonları. Sətrin içində $ və dəyişənin adını yazırsan, onun qiyməti avtomatik yerinə qoyulur. Bütöv ifadə üçün fiqurlu mötərizə işlədilir: ${age + 1}.

Kotlin
fun main() {
    val name = "Murad"
    val city = "Baku"
    val age = 14
    println("$name lives in $city.")
    println("Next year $name will be ${age + 1}.")
    println("The name has ${name.length} letters.")
    println("Hello, " + name + "!")
}
Gözlənilən nəticə
Murad lives in Baku.
Next year Murad will be 15.
The name has 5 letters.
Hello, Murad!

Sətirlərin çoxlu faydalı funksiyası var. length uzunluğu verir, [0] birinci simvolu götürür (sayma sıfırdan başlayır), uppercase() və lowercase() hərflərin böyüklüyünü dəyişir:

Kotlin
fun main() {
    val word = "Kotlin"
    println(word.length)
    println(word.uppercase())
    println(word.lowercase())
    println(word[0])
    println(word.last())
    println(word.contains("lin"))
    println(word.reversed())
    println("ha".repeat(3))
    println("  hello  ".trim() + "!")
}
Gözlənilən nəticə
6
KOTLIN
kotlin
K
n
true
niltoK
hahaha
hello!

Əsas fikirlər

  • val yalnız oxunan dəyişəndir, var-a isə yeni qiymət vermək olar; mümkün olduqca val seç.
  • Kompilyator tipi qiymətdən özü müəyyən edir: val x = 2.5 — Double-dır.
  • İki Int-in bölünməsi Int verir (7 / 2 = 3); % qalığı tapır.
  • Tiplər avtomatik çevrilmir: toInt(), toDouble(), toString() işlət.
  • Sətir şablonları: "$name" dəyişəni, "${a + b}" isə ifadəni sətrə yerləşdirir.

Özünü yoxla

10 sual. Hər düzgün cavab XP qazandırır.

1 / 10
Hansı söz qiyməti sonradan dəyişdirilə bilməyən dəyişən yaradır?