記憶の外付けHDD

切実に頭にUSBのコネクターがほしいです。なるべくtype-cでお願いしたいです。(忘れないように、プログラミング学習で学んだことを投稿してます)

【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つ。
以上でよろしいでしょうか。
#==========