0
キャピストラーノフェッチ機能でブロックパラメーターとはどういう意味ですか?キャピストラーノブロックを使ってフェッチする
fetch(:release_path) { current_path }
また、デフォルトで呼び出すことができますか?
fetch(:release_path, 'default') { current_path }
キャピストラーノフェッチ機能でブロックパラメーターとはどういう意味ですか?キャピストラーノブロックを使ってフェッチする
fetch(:release_path) { current_path }
また、デフォルトで呼び出すことができますか?
fetch(:release_path, 'default') { current_path }
ブロックと第2引数の両方がデフォルト値を提供するために使用されます。例えば
:
# If :some_var is not set, then the default is used
fetch(:some_var) { "default" }
=> "default"
fetch(:some_var, "default")
=> "default"
# Once :some_var is set, the defaults are ignored
set(:some_var, "value")
fetch(:some_var) { "default" }
=> "value"
fetch(:some_var, "default")
=> "value"
あなたは第二引数と同時にブロックの両方を指定することはありません。その場合、引数は無視され、ブロックが使用されます。
# Don't do this, it is confusing
fetch(:another_var, "arg_default") { "block_default" }
=> "block_default"
別のフォームを選択する理由は、デフォルト値のタイプによって異なります。上記の例のリテラル文字列のように、デフォルト値がハードコードされている場合、引数の形式は意味があります。一方、デフォルト値が計算値(すなわち、メソッド呼び出し)である場合、ブロックを使用する方がよい。
そのRubyのビルトインHash#fetch
、ここで説明されているのカピストラーノのfetch
模倣の既定値の動作:http://ruby-doc.org/core-2.4.0/Hash.html#method-i-fetch