Ta treść została automatycznie przetłumaczona z ukraińskiego.
W Ruby są dwa operatory logicznego "i" - && i and. Na pierwszy rzut oka są podobne, ale mają różny priorytet wykonania.
&& ma wysoki priorytet, dlatego zazwyczaj używa się go do wyrażeń logicznych, warunków i pętli.
and ma niski priorytet, dlatego często używa się go do kontroli przepływu, gdy trzeba wykonać kilka działań po kolei.
Przykład z &&:
result = true && false # najpierw oblicza true && false => false # result => false
Przykład z and:
result = true and false # Ruby interpretuje jako (result = true) and false # najpierw wykonuje przypisanie result = true # potem wykonuje logiczne i z false, ale to nie zmienia zmiennej result result # => true
Kiedy i co używać?
- Używaj && do logiki i warunków.
- Używaj and do sekwencyjnego wykonywania działań (kontrola przepływu), na przykład return true and log_success. Ale lepiej tego nie robić. Bo można się trochę pomylić.
Priorytet określa kolejność obliczeń, a nie wynik operacji logicznej sam w sobie.
Ten post nie ma jeszcze żadnych dodatków od autora.