みそみそりんりんblog

勉強したことを書いていきます

Rubyのメソッドの引数がHashの時、fetch使わんやつおる??

初期化の際の引数にハッシュを使う

「 | | 」を使った場合

def initialize(args)
  @id  = args[:id] || 1
  @name = args[:name] || "misomiso"
end

↑これだと、falseとnilの区別ができねえじゃねえか!

「fetch」を使うと...

def initialize(args)
  @id = args.fetch(:id, 1)
  @name = args.fetch(:name, "misomiso")
  @flag = args.fetch(:flag, true)
end

fetchでええやん

参考文献

オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方 | Sandi Metz, 髙山泰基 | 工学 | Kindleストア | Amazon