我在这里有一个函数,它检查输入数组的最后一个元素是否是哈希表。如果是这样,它将删除哈希表中的最后一个元素。这来自Ruby Monk 6.2节中的解决方案。
def remove_last(*arguments)
options = arguments[-1].is_a?(Hash) ? arguments.pop : {}
end
什么是'?'操作员之间做...(哈希)? arguments.pop ...
为什么arguments.pop之后还有':{}'。
答案 0 :(得分:2)
这是一个三元条件运算符。它具有以下形式:
condition ? true_value : false_value
它评估条件,并在条件为真时假定true_value
的值,在条件为假时假定为false_value
。
答案 1 :(得分:2)
答案 2 :(得分:0)
它被称为三元运算符
(condition) ? (use_this_if_true) : (use_this_if_false)
在你给出的例子中,如果参数[-1] .is_a?(Hash),options将包含arguments.pop,否则选项将包含由{}
表示的空哈希