【Ruby】キーワード引数
はじめに
メソッドの引数が2こ以上あるとき、キーワード引数を使用すると良いです。
可読性が上がります。
例(通常)
def order_repeat(drink, size, number) puts <<~EOS ご注文繰り返します。 #{drink}の#{size}が#{number}つ。 以上でよろしいでしょうか。 EOS end order_repeat("コーラ", "M", 2) # ===結果=== ご注文繰り返します。 コーラのMが2つ。 以上でよろしいでしょうか。 #==========
困ったこと
ここで、order_repeat("M", 2, "コーラ")
と引数の順番を変えてしまうと、結果がおかしくなります。
(中略) order_repeat("M", 2, "コーラ") # ===結果=== ご注文繰り返します。 Mの2がコーラつ。 以上でよろしいでしょうか。 #==========
解決策(キーワード引数)
キーワード引数を使うと、メソッドの引数の順番を気にしなくてよくなります。
そして、引数が何を意味するかわかりやすくなります。(可読性の向上)
例(キーワード引数を使用)
def order_repeat(drink:, size:, number:) puts <<~EOS ご注文繰り返します。 #{drink}の#{size}が#{number}つ。 以上でよろしいでしょうか。 EOS end order_repeat(size: "M", number: 2, drink: "コーラ") # ===結果=== ご注文繰り返します。 コーラのMが2つ。 以上でよろしいでしょうか。 #==========