Darsliklar Ruby Satrlar

Ruby Ruby Satrlar

Satr (String) — matn ma’lumotlarini saqlaydigan klass. Ruby’da satrning muhim xususiyati bor: u o’zgaruvchan (mutable) — ko’plab boshqa tillardagi (masalan, Python’dagi) satrlardan farqli o’laroq, mavjud satrni joyida o’zgartirish mumkin.

Stringbelgilar ketma-ketligini ifodalovchi klass. Bitta yoki qo’sh tirnoq bilan yoziladi, lekin ular bir xil emas: qo’sh tirnoq interpolyatsiya va maxsus belgilarni qo’llab-quvvatlaydi, bitta tirnoq esa matnni xom holicha oladi.

Bitta va qo’sh tirnoq farqi

Qo’sh tirnoq ichida #{} orqali o’zgaruvchi qiymatini joylashtirish (interpolyatsiya) mumkin, bitta tirnoqda esa bu ishlamaydi:

ism = "Master Sherkulov"
puts "Salom, #{ism}!"
puts 'Salom, #{ism}!'
Salom, Master Sherkulov!
Salom, #{ism}!

Qo’sh tirnoqdagi #{ism} o’zgaruvchining qiymati bilan almashtirildi. Bitta tirnoqda esa #{ism} harfma-harf, xom matn sifatida chiqdi — chunki bitta tirnoq interpolyatsiyani tushunmaydi.

Satrlarni birlashtirish

Satrlarni birlashtirishning bir necha usuli bor — ular natijasi bir xil bo’lsa ham, xotirada boshqacha ishlaydi:

ism = "Farrux"
familiya = "Sherkulov"

puts ism + " " + familiya
puts "#{ism} #{familiya}"
Farrux Sherkulov
Farrux Sherkulov

+ operatori ikkita satrdan yangi satr yaratadi. Interpolyatsiya (#{}) esa odatda o’qilishi osonroq va uzun matnlarda tezroq ishlaydi, chunki oraliq obyektlar kamroq yaratiladi.

O’zgaruvchanlik (mutability)

Ruby satrini, massiv kabi, joyida — yangi obyekt yaratmasdan — o’zgartirish mumkin:

xabar = "Salom"
asl_id = xabar.object_id

xabar << ", UzbekDevs!"
puts xabar
puts xabar.object_id == asl_id
Salom, UzbekDevs!
true

<< (shovel operatori) satrni joyida o’zgartiradi — object_id (obyektning xotiradagi noyob identifikatori) o’zgarmay qoladi, chunki yangi obyekt yaratilmadi, mavjudi kengaytirildi. Agar o’rniga xabar = xabar + ", UzbekDevs!" yozilganda, natija bir xil ko’rinsa-da, object_id o’zgargan bo’lardi — chunki + yangi obyekt yaratadi. << katta matnlar bilan ishlashda shu sabab samaraliroq.

Foydali satr metodlari

Satrlar ustida eng ko’p ishlatiladigan metodlarni ko’ramiz:

Metod Vazifasi Misol
.length uzunligi "Ruby".length4
.upcase katta harflarga "ruby".upcase"RUBY"
.reverse teskarisiga "abc".reverse"cba"
.include? tarkibida bormi "Ruby".include?("ub")true
.split bo’laklarga ajratish "a,b,c".split(",")["a","b","c"]
sarlavha = "uzbekdevs"
puts sarlavha.capitalize
puts sarlavha.length
puts sarlavha.include?("dev")
Uzbekdevs
9
true

capitalize — faqat birinchi harfni katta qiladi, qolganini kichik. Bu metodlarning barchasi yangi satr qaytaradi, asl sarlavha o’zgarmaydi — faqat <<, upcase!, gsub! kabi undov (!) belgili metodlar obyektni joyida o’zgartiradi.