Hash#fetch
どのような状況で使用したいかわかりませんHash#[]
。それが有効に役立つ一般的なシナリオはありますか?
2731 次
3 に答える
25
3 つの主な用途:
値が必須の場合、つまりデフォルトがない場合:
options.fetch(:repeat).times{...}
素敵なエラー メッセージも表示されます。
key not found: :repeat
値が
nil
orfalse
で、デフォルトがそれ以外の場合:if (doit = options.fetch(:repeat, 1)) doit.times{...} else # options[:repeat] is set to nil or false, do something else maybe end
ハッシュの
default
/を使いたくない場合:default_proc
options = Hash.new(42) options[:foo] || :default # => 42 options.fetch(:foo, :default) # => :default
于 2013-01-30T01:43:49.887 に答える
6
デフォルト値を取得したり、キーが存在しないときにエラーを発生させたりする場合にfetch
便利です。fetch
デフォルト値をハッシュに設定しなくてもこれを行うことは可能ですが、を使用fetch
すると、その場で行うことができます。
于 2013-01-30T01:27:48.703 に答える