Jako ogólną zasadę: nigdy dość dużo potrzebować potrójny operatora w Ruby. Powodem, dla którego jest to potrzebne w C, jest to, że w C if
jest instrukcja, więc jeśli chcesz zwrócić wartość, musisz mieć, aby użyć operatora trójskładnikowego, który jest wyrażeniem.
W Ruby, wszystko jest wyrazem nie są żadnego oświadczenia, co sprawia, że potrójny operator prawie zbędne. Zawsze można zastąpić
cond ? then_branch : else_branch
z
if cond then then_branch else else_branch end
Tak w przykładzie:
object.method ? a.action : nil
jest równoważna
if object.method then a.action end
który jako @Greg Campbell zwraca uwagę, jest z kolei równoznaczne z końcem if
modyfikator forma
a.action if object.method
Również od operatorów logicznych w Ruby nie tylko powrócić true
lub false
, ale wartość ostatnim ocenianym wypowiedzi, można je wykorzystać do kontroli przepływu. Jest to idiom importowane z Perl, i będzie wyglądać następująco:
object.method and a.action
To zależy od kontekstu, ale czasami jest to bardziej eleganckie czytać if/podczas/rozpocząć bloku z tylko jedną linię w organizmie niż coś bardziej zwartego/lapidarnego. –