在我关于使用ruby选项哈希的结构化方法的阅读中,我遇到了几次无法解释的编码“主题”。由于我不知道它叫什么,我很难查找它以了解更多信息。
以下是一个例子:
1 def example_method(input1, options={})
2
3 default_options = {
4 :otherwise => "blue",
5 :be_nil => nil
6 }
7
8 options[:be_nil] ||= options[:otherwise]
9
10 # other code goes down here
11 end
所以,在第8行,你可以看到我在说什么。从我可以放在一起,代码行的行为类似于第三运算符。在一个条件下,它将变量设置为一个值...在不同的条件下,它将变量设置为不同的值。但是,在这种情况下,代码会更新存储在“options”变量中的哈希值。 这是正确的假设吗?此外,这个样式/操作符/功能是什么?
答案 0 :(得分:0)
这是一项有条件的任务。如果为nil或false,则左侧的变量将被赋值。这是说的简称:
unless options[:be_nil]
options[:be_nil] = options[:otherwise]
end