0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Ruby】引数にデフォルト式を指定するときはキーワード引数を使おう

Last updated at Posted at 2022-01-07

###キーワード引数

メリット

  • 引数の順番を気にしなくていい
  • 引数が何を指しているのかわかりやすい

####引数にデフォルト値を与える

def greet(name, message = 'Hello')
  "#{message}, #{name}さん"
end

#messageを指定しないとデフォルト値がそのまま出力される
greet('Kato')
#=> Hello, Katoさん

#デフォルト値を変更
greet('Kato', 'Hi')
#=> Hi, Katoさん

#引数の順番を逆にすると意図してない動きをする
greet('Hi', 'Kato')
#=> Kato, Hiさん

####キーワード引数を使う

def greet(name: '名無し', message: 'Hello')
  puts "#{message}, #{name}さん"
end

#引数指定なし
greet
#=> hello, 名無しさん

#nameのみ指定
greet(name: 'Kato')
#=> Hello, Katoさん

#messageのみ指定
greet(message: 'Hi')
#=> Hi, 名無しさん

#name, messageともに指定
greet(name: 'Kato', message: 'Hi')
#=> Hi, Katoさん

#引数の順番を逆にする
greet(message: 'Hi', name: 'Kato')
#=> Hi, Katoさん

###キーワード引数はシンボルと同じじゃないの?と思った人はこちら

###参考

####おまけ
「デフォルト引数」という言葉が公式なのか微妙だった

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?