In Ruby, the condition and the
then part of an
if expression must be separated by either an expression separator (i.e.
; or a newline) or the
So, all of these would work:
if @item.rigged then 'Yes' else 'No' end if @item.rigged; 'Yes' else 'No' end if @item.rigged 'Yes' else 'No' end
There is also a conditional operator in Ruby, but that is completely unnecessary. The conditional operator is needed in C, because it is an operator: in C,
if is a statement and thus cannot return a value, so if you want to return a value, you need to use something which can return a value. And the only things in C that can return a value are functions and operators, and since it is impossible to make
if a function in C, you need an operator.
In Ruby, however,
if is an expression. In fact, everything is an expression in Ruby, so it already can return a value. There is no need for the conditional operator to even exist, let alone use it.
BTW: it is customary to name methods which are used to ask a question with a question mark at the end, like this:
This shows another problem with using the conditional operator in Ruby:
@item.rigged? ? 'Yes' : 'No'
It’s simply hard to read with the multiple question marks that close to each other.
Leave an answer