Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

メタプログラミングRuby | イディオム | 名前付き引数

概要

名前付き引数

内容

Ruby1.9以前には名前付き引数がサポートされていません。
擬似的に名前付き引数を利用するためにハッシュを利用します。

サンプル

# encoding: utf-8
def hoge(args)
  args[:cnt] ||= 1
  puts args[:hage]*args[:cnt] + args[:hige]*args[:cnt]
end

hoge(hige:'ひげ', hage:'はげ')
hoge(hage:'はげ', hige:'ひげ', cnt:2)

出力

はげひげ
はげはげひげひげ

参考(Ruby2.0)

Ruby2.0ではパラメータ付き引数が言語サポートされています

# encoding: utf-8
def hoge(hage: 'hage', hige: 'hige', cnt: 1)
  puts hage*cnt + hige*cnt
end

hoge(hige: 'ひげ', hage: 'はげ')
hoge(hage: 'はげ', hige: 'ひげ', cnt: 2)