【问题标题】:What does the ? operator do in Ruby [closed]有什么作用?运算符在 Ruby 中执行 [关闭]
【发布时间】:2013-08-27 17:57:17
【问题描述】:

我在这里有一个函数来检查输入数组的最后一个元素是否是哈希表。如果是这样,它将删除哈希表中的最后一个元素。这来自 Ruby Monk 第 6.2 节中的解决方案。

def remove_last(*arguments)
  options = arguments[-1].is_a?(Hash) ? arguments.pop : {}
end

'?' 是什么意思?运算符在 ...(Hash) 之间做什么? arguments.pop ...

为什么arguments.pop 后面还有一个' : {} '。

【问题讨论】:

  • 阅读一本介绍 Ruby 的书。

标签: ruby hashtable


【解决方案1】:

叫做三元运算符

(condition) ? (use_this_if_true) : (use_this_if_false)

在您给出的示例中,options 将包含 arguments.pop if arguments[-1].is_a?(Hash) 否则 options 将包含由 {}

表示的空哈希

【讨论】:

    【解决方案2】:

    这是ternary operator

    这就像一个捷径

    if arguments[-1]is.A?(Hash)
      arguments.pop
    else
      {}
    end
    

    只要你有简短的 if 语句,你就可以使用它

    【讨论】:

      【解决方案3】:

      这是一个三元条件运算符。它具有以下形式:

      condition ? true_value : false_value
      

      它评估条件,当条件为真时假定true_value的值,当条件为假时假定false_value

      【讨论】:

      • 好答案。简洁。
      • 由于对所提出的问题缺乏基本理解,您应该投票结束这些问题作为离题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2011-04-05
      • 2013-10-12
      • 2014-01-14
      • 2012-03-30
      相关资源
      最近更新 更多