kurusaki 開発ブログ

プログラミングや会社のこと、写真、自転車のことなど書いてます

Rubyでメソッドを動的に呼び出す

メソッドを動的に呼び出すにはObjectのsendを使います。

class Hoge
  def medhod_01(val)
    puts "val : #{val}"
  end
end

hoge = Hoge.new
# 普通にメソッドを呼び出す
hoge.medhod_01(10)

# 動的にメソッドを呼び出す
hoge.send(:medhod_01, 20)

sendメソッドの第一引数にメソッド名を指定します。
メソッド名はシンボルか文字列で渡します。

実行結果

val : 10
val : 20