🖥

# Rubyでハッシュの引数にデフォルト値を渡せるという基本をまるで知らなかった。もうキーワード引数のエラーに怯えない。

2019/11/17に公開

Ruby keyword arguments raises "unknown keyword (ArgumentError) " so use hash keyword with default value

Hash argument

class Alice
  def initialize(options = { nickname: :liddel })
    @options = options
  end

  def nickname
    @options[:nickname]
  end
end

p Alice.new.nickname
# :liddel

# unknown hash value ignored, not raise error
p Alice.new(nickname: :wonder, sex: :woman).nickname
# :wonder

Keyword argument

class Bob
  def initialize(nickname: :phantom)
    @nickname = nickname
  end

  def nickname
    @nickname
  end
end

p Bob.new.nickname
# :phantom

p Bob.new(nickname: :animal, sex: :man).nickname
# `initialize': unknown keyword: sex (ArgumentError)

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/2724

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2019-11-17

Discussion