Darsliklar Ruby Ma'lumot turlari

Ruby Ruby Ma'lumot turlari

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.