我该如何做这样的事情?单行分配:如果(条件)变量=值1其他值2
if params[:property] == nil
@item.property = true
else
@item.property = false
总是忘记把它写在一行中的正确语法。
在PHP这将是这样的:
@item.property=(params[:property]==nil)true:false
是它在轨道一样吗?
我该如何做这样的事情?单行分配:如果(条件)变量=值1其他值2
if params[:property] == nil
@item.property = true
else
@item.property = false
总是忘记把它写在一行中的正确语法。
在PHP这将是这样的:
@item.property=(params[:property]==nil)true:false
是它在轨道一样吗?
使用三元运算:
@item.property = params[:property] ? true : false
或强制布尔转换( “未未” 操作):
@item.property = !!params[:property]
注:在红宝石,它是一个常见的成语不到使用真正的布尔值,因为除false
或nil
之外的任何对象的评估结果为true
。
正是我所需要的 – user1885058
m_x答案是完美的,但你可能有兴趣知道其他的方法来做到这一点,它可以更好看的其他情形:
if params[:property] == nil then @item.property = true else @item.property = false end
或
@item.property = if params[:property] == nil then true else false end
三元操作符? –
这不是有效的PHP代码,是吗?该语句看起来像这样afaik:$ item-> property =($ something === NULL)? true:false – Kloar
也许,这仅仅是一个例子 – user1885058