我目前正在做的是
"Hello" if options && options[:greet]
我想做的是缩短那行代码。如果
options
为空,options[:greet]
也显然为空。Ruby/Rails是否提供了一种方法来检查哈希表的值?或者有没有更简洁的写法?我想要做的是缩短这行代码。如果
options
为nil,则options[:greet]
也会为nil。Ruby / Rails是否提供了一种提供此“哈希检查”功能的方法?或者也许有一种更简洁的写法吗?我目前正在做的是
"Hello" if options && options[:greet]
options
为空,options[:greet]
也显然为空。Ruby/Rails是否提供了一种方法来检查哈希表的值?或者有没有更简洁的写法?options
为nil,则options[:greet]
也会为nil。Ruby / Rails是否提供了一种提供此“哈希检查”功能的方法?或者也许有一种更简洁的写法吗?还有一种快捷方式,我更经常使用它,当我无法控制 options
变量时(即它可能是nil或散列):
options.to_h[:greet] # just convert it to a hash before key access
options
总是被设置会有意义。如果options
作为参数传递给一个方法,你可能想要设置一个默认值:def method_name(options = {})
如果在使用选项之前options
值为nil
,您可能希望使用一个空哈希来初始化options
:
options ||= {}
try
的方法,当你在nil
上调用方法时它不会失败。options.try([], :greet)
options=nil
进行初始化的,没有想到把它设置为空哈希表。使用 try
的方法也很有趣 :) - Dan