以下两行之间有什么区别?|||除非包含?各色?
# settings and globals are Hash
@settings[:xvfb] = globals[:xvfb] unless settings.include?(:xvfb)
@settings[:xvfb] ||= globals[:xvfb]
它们是否相等?
以下两行之间有什么区别?|||除非包含?各色?
# settings and globals are Hash
@settings[:xvfb] = globals[:xvfb] unless settings.include?(:xvfb)
@settings[:xvfb] ||= globals[:xvfb]
它们是否相等?
不,它们不是等价的。它们在处理错误的值方面有所不同。
globals = { foo: 'bar' }
h = { foo: nil }
h.include?(:foo) # => true
h[:foo] = globals[:foo] unless h.include?(:foo)
h # => {:foo=>nil}
h = { foo: nil }
h[:foo] ||= globals[:foo]
h # => {:foo=>"bar"}
取决于“设置”是什么。 – sawa
'settings'和'globals'是'Hash'。问题已更新。 –
@AlexandreArdhuin:除了塞尔吉奥所说的:你有一个错字。我想你的意思是'除非@ settings.include?(:xvfb)'。 – user1934428