Darsliklar Ruby Boolean (Mantiqiy)

Ruby Ruby Boolean (Mantiqiy)

Boolean (mantiqiy qiymat) — faqat ikkita holatni ifodalaydi: true yoki false. Ruby’da bular alohida TrueClass va FalseClass klasslarining yagona (singleton) nusxalari — butun dastur davomida true doim bir xil obyektga ishora qiladi.

true / falseTrueClass va FalseClass klasslarining yagona obyektlari. Shart operatorlari, solishtirishlar va mantiqiy amallar natijasi doim shu ikkisidan biri bo’ladi.

Solishtirish natijasi

Solishtirish operatorlari (==, >, <, !=) natijada Boolean qaytaradi:

yosh = 26
puts yosh > 18
puts yosh == 30
puts yosh != 30
true
false
true

Bu qiymatlar shart operatorlarida (if, while) to’g’ridan-to’g’ri ishlatiladi — Ruby’da qo’shimcha o’girish shart emas.

Rost va yolg’on — Ruby’ning muhim qoidasi

Ruby’da shart tekshirilganda faqat ikkita qiymat yolg’on hisoblanadi: false va nil. Boshqa hamma narsa — hatto 0 va bo’sh satr "" ham — rost hisoblanadi. Bu Python yoki C++’dan tubdan farq qiladi, u yerda 0 va bo’sh satr yolg’on hisoblanadi:

puts "rost" if 0
puts "rost" if ""
puts "yolg'on" unless nil
rost
rost
yolg'on

0 va "" shart ichida true kabi ishlaydi — chunki ular na false, na nil. Boshqa tildan kelgan dasturchilar uchun bu eng ko’p adashtiradigan farqlardan biri, shuning uchun uni alohida yodda tutish kerak.

Mantiqiy operatorlar: && va ||

&& (VA) ikkala shart ham rost bo’lgandagina rost qaytaradi, || (YOKI) esa kamida bittasi rost bo’lsa yetarli:

yosh = 26
faol = true

puts yosh > 18 && faol
puts yosh > 30 || faol
puts !faol
true
true
false

! operatori qiymatni teskarisiga o’giradi. Ruby’da bundan tashqari and, or, not kalit so’zlari ham mavjud — ular xuddi shunday ishlaydi, lekin ustunlik darajasi (precedence) past, shu sabab ularni asosan boshqaruv oqimida (masalan, to'xtat and qaytish), &&/|| ni esa shartlarda ishlatish tavsiya etiladi.

nil — na rost, na yolg’on qiymat emas

nil alohida holat — u “qiymat yo’q” degani, lekin shart ichida false kabi yolg’on hisoblanadi:

natija = nil
puts "Natija mavjud emas" if natija.nil?
puts "Shart ichida ham yolg'on" unless natija
Natija mavjud emas
Shart ichida ham yolg'on

nil.nil? doim true qaytaradi — bu qiymat borligini emas, yo’qligini aniq tekshirishning eng ishonchli usuli.