Ma’lumot turlari — Ruby’ning “hamma narsa obyekt” falsafasining amaliy ko’rinishi. Har bir qiymat — son, matn, true, hatto nil ham — o’ziga xos klassga tegishli obyektdir, va aynan shu klass uning ustida qanday metod chaqirish mumkinligini belgilaydi.
Ma’lumot turi (data type) — qiymatning tegishli bo’lgan klassi. Ruby’da tur — bu alohida tushuncha emas, balki qiymatning o’zi qaysi klassning nusxasi (instance) ekanligi.
Asosiy klasslar
Ruby’ning ichki o’rnatilgan asosiy klasslarini jadvalda ko’ramiz:
| Klass | Tavsifi | Misol |
|---|---|---|
Integer |
butun son (chegarasiz aniqlik) | 26 |
Float |
kasr son | 3.14 |
String |
matn | "UzbekDevs" |
Symbol |
o’zgarmas identifikator | :ism |
TrueClass / FalseClass |
mantiqiy qiymat | true, false |
NilClass |
qiymat yo’qligi | nil |
Array |
tartiblangan ro’yxat | [1, 2, 3] |
Hash |
kalit-qiymat lug’ati | {ism: "Farrux"} |
Har birini keyingi darslarda alohida chuqurroq ko’rib chiqamiz.
Klassni aniqlash — .class metodi
Har qanday obyektning klassini bilish uchun .class metodi chaqiriladi. Python’dagi type() funksiyasidan farqli o’laroq, bu — obyektning o’zida chaqiriladigan metod:
narx = 15000
ism = "Master Sherkulov"
pi = 3.14
faol = true
puts narx.class
puts ism.class
puts pi.class
puts faol.class
Integer
String
Float
TrueClass
Har bir qiymat — o’z klassining to’liq huquqli obyekti. Shu sababli narx.class kabi chaqiruv tabiiy ko’rinadi: siz obyektdan uning klassini so’rayapsiz.
Turlarni bir-biriga o’tkazish
Bir klassdagi qiymatni boshqasiga aylantirish uchun to_i, to_f, to_s metodlari ishlatiladi:
matn = "100"
son = matn.to_i
natija = son + 50
puts natija
puts "Natija: " + natija.to_s
150
Natija: 150
"100".to_i matnni butun songa, natija.to_s esa sonni matnga aylantiradi. Agar songa aylantirib bo’lmaydigan matn ("salom".to_i) berilsa, Ruby xato bermaydi — natija sokin 0 bo’ladi. Bu Python’ning int() funksiyasidan farqi: u xato ko’tarmasdan, muqobil qiymat qaytaradi.
nil — qiymat yo’qligi
Ruby’da qiymat yo’qligini bildirish uchun maxsus nil obyekti bor — u o’zining alohida NilClass klassiga ega:
natija = nil
puts natija.nil?
puts natija.class
true
NilClass
nil? metodi har qanday obyektda mavjud va qiymat aynan nil ekanligini tekshiradi. Bu, masalan, massivdan topilmagan elementni yoki hali hisoblanmagan natijani bildirishda ishlatiladi.