首页 > 解决方案 > Ruby中的孤问号符号和孤冒号符号是什么意思

问题描述

在这段先前编写的代码中,有?:自己使用(单独的符号),而不是附加到单词上。在这种情况下,它们是什么意思?

  # Fill application object with applicant info; generic info if not provided.
  availability ? formdata[:availability] = availability : (formdata[:availability] = [0,1,2,3,4,5,6])

标签: rubysyntaxsymbolscolon

解决方案


这是三元运算符。它相当于 if/else。您的代码也可以这样编写:

if availability 
  formdata[:availability] = availability 
else
  (formdata[:availability] = [0,1,2,3,4,5,6])
end

我还认为应该将其简化为以下内容:

formdata[:availability] = availability ? availability : [0,1,2,3,4,5,6]

条件句中的赋值是一种奇怪的写法,并不常见。

您还可以进一步简化为:

formdata[:availability] = availability || [0,1,2,3,4,5,6]

怎么个||的细节 (或)赋值操作可以在这里找到


推荐阅读