ruby //现在还是零

时间:2015-03-10 14:56:59

标签: ruby syntax conditional-statements

简单示例:

val = (params[:page] ? params[:page] : nil)

我只是不知道如何命名,然后找不到更好的答案

我觉得这个例子存在一个更简单的语法;并想知道如何更好地写它

2 个答案:

答案 0 :(得分:4)

您可以像这样使用||

val = params[:page] || nil

如果params[:page]nilfalseval将为nil。在所有其他情况下,它将是params[:page]的值。

答案 1 :(得分:0)

您可以这样做:

val = params[:page]

您正在使用三元运算符,这意味着

condition ? true do this : false do this

将以上内容应用于您的示例:

params[:page] ? params[:page] : nil

在Ruby中,除truenil外,任何返回值都被视为false。因此,如果params[:page]有一个值(即条件true),那么您将为其分配val的值。如果是nil,则您将val指定为nil。因此,最终您只需分配val params[:page]所具有的任何值。因此val = params[:page]

此逻辑的最新示例将简化为:

%body{data: {page: params[:page]}}
  

我需要属性真的为零;事情并非如此   只有:

     

%body{data: {page: params[:page]}}

如果params[:page]没有值,则默认为nil。所以除了false之外,你的假设是不正确的。