本文簡要介紹ruby語言中 ENV.update
的用法。
用法
update(hash) → ENV
update(hash) { |name, env_val, hash_val| block } → ENV
merge!(hash) → ENV
merge!(hash) { |name, env_val, hash_val| block } → ENV
ENV.update
是 ENV.merge!
的別名。
將給定 hash
中的每個鍵/值對添加到 ENV
;返回 ENV:
ENV.replace('foo' => '0', 'bar' => '1')
ENV.merge!('baz' => '2', 'bat' => '3') # => {"bar"=>"1", "bat"=>"3", "baz"=>"2", "foo"=>"0"}
刪除 nil
的哈希值的 ENV
條目:
ENV.merge!('baz' => nil, 'bat' => nil) # => {"bar"=>"1", "foo"=>"0"}
對於 already-existing 名稱,如果沒有給出塊,則覆蓋 ENV
值:
ENV.merge!('foo' => '4') # => {"bar"=>"1", "foo"=>"4"}
對於already-existing 名稱,如果給出塊,則產生名稱、其 ENV
值及其哈希值;塊的返回值成為新名稱:
ENV.merge!('foo' => '5') { |name, env_val, hash_val | env_val + hash_val } # => {"bar"=>"1", "foo"=>"45"}
如果名稱或值無效,則引發異常(請參閱無效名稱和值);
ENV.replace('foo' => '0', 'bar' => '1')
ENV.merge!('foo' => '6', :bar => '7', 'baz' => '9') # Raises TypeError (no implicit conversion of Symbol into String)
ENV # => {"bar"=>"1", "foo"=>"6"}
ENV.merge!('foo' => '7', 'bar' => 8, 'baz' => '9') # Raises TypeError (no implicit conversion of Integer into String)
ENV # => {"bar"=>"1", "foo"=>"7"}
如果塊返回無效名稱,則引發異常:(請參閱無效名稱和值):
ENV.merge!('bat' => '8', 'foo' => '9') { |name, env_val, hash_val | 10 } # Raises TypeError (no implicit conversion of Integer into String)
ENV # => {"bar"=>"1", "bat"=>"8", "foo"=>"7"}
請注意,對於上述例外情況,無效名稱或值之前的哈希對將正常處理;以下內容被忽略。
相關用法
- Ruby ENV.empty?用法及代碼示例
- Ruby ENV.delete_if用法及代碼示例
- Ruby ENV.inspect用法及代碼示例
- Ruby ENV.delete用法及代碼示例
- Ruby ENV.to_s用法及代碼示例
- Ruby ENV.to_h用法及代碼示例
- Ruby ENV.clear用法及代碼示例
- Ruby ENV.length用法及代碼示例
- Ruby ENV.key用法及代碼示例
- Ruby ENV.reject用法及代碼示例
- Ruby ENV.values用法及代碼示例
- Ruby ENV.select!用法及代碼示例
- Ruby ENV.freeze用法及代碼示例
- Ruby ENV.rassoc用法及代碼示例
- Ruby ENV.invert用法及代碼示例
- Ruby ENV.value?用法及代碼示例
- Ruby ENV.select用法及代碼示例
- Ruby ENV.each_key用法及代碼示例
- Ruby ENV.reject!用法及代碼示例
- Ruby ENV.keys用法及代碼示例
- Ruby ENV.include?用法及代碼示例
- Ruby ENV.each_value用法及代碼示例
- Ruby ENV.except用法及代碼示例
- Ruby ENV.values_at用法及代碼示例
- Ruby ENV.replace用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 ENV.update。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。