Pozor na logické operátory and a or v Ruby
Jazyk Ruby má, stejně jako jiné jazyky, možnost použít logické operátory OR a AND. V jazycíc typu C se tyto operátory zapisují pomocí || nebo &&, v jiných jako or a and. V Ruby můžete použít oba tvary, což začátečníky svádí k tomu, že je volně zaměňují, což není zcela v pořádku. Mezi slovní a symbolickou variantou jsou totiž drobné rozdíly. Zaměřuje se na ně článek Using „and“ and „or“ in Ruby.
Zdroj: Virtuous Code
Vypadá to jen na rozdílnou prioritu. Píší tam, že to pochází z Perlu, což by asi vysvětlovalo, že je to podobně i v PHP.
Pro logické „a, anebo“ se používá and, or:
if (has_cars or has_trucks) and has_parking
…
Naproti tomu && a || pracují jako binární and, or, t.j. hodí na přiřazování:
places = parking_avail && (trucks_places || cars_places)
Zde je u Ruby pěkný přiřazení hodnoty pokud je proměna prázdná (nil):
x ||= 10
(což je ve zkratce: x = x || 10)
Aj ked sa o tejto ficure velmi nevie a niektore blbsie kompilatory ju nepodporuju.