我正在重构一些代码,我找到了像
这样的东西编辑:
设置是存储在我的数据库中的哈希。所以想象一下键 - >值结构存储在数据库中。因此,如果它不可访问,它将生成异常
def MyClass
def my_method(foo = Settings[:foobar]
foo
end
def your_method
my_method
end
端
我觉得它不安全,因为没有检查Settings [:foobar]是否存在。我的问题是:
写它会更安全吗:def MyClass
def my_method(foo)
foo unless foo.nil?
end
def your_method
my_var = Settings[:foobar] rescue "default value"
my_method my_var
end
end
如果没有,还有其他好的选择吗?
答案 0 :(得分:0)
如果Settings
是哈希值,那么Settings[:foo]
将返回nil
。所以foo unless foo.nil?
做同样的事情。
另一种方法是使用||=
方法。
def method(foo)
foo ||= Settings[:foo]
...
end
但是我没有看到它比你拥有的更好的原因......
def method(foo)
foo ||= Settings[:foo] || "my really default default"
...
end
...除非您在设置缺失时想要默认使用其他值,否则您可以执行此类操作。
抓住那个......不管怎么说都没有阻止你这样做......
def method(foo = Settings[:foo])
foo ||= "my really default default"
...
end
希望这会有所帮助。