tips chips

日々の作業で出てきた技術メモの切れ端を置いておくページ

Rubyでメソッド自体を値として扱いたい

条件ごとに違うメソッドを変数に代入して、実行したりしたいとき

うまくタイトルをつけられているか不安だが、要は「メソッドとかを変数に入れておいて後で実行したい」という時Rubyではどうやって書くかという話。(Rubyはカッコがなくてもメソッド呼び出しになってしまうのでどうしたら……?と思って調べた)

# 代入する時 method = SomeClass.method(:some_method) # 使う時(引数がなければもちろんカッコは省略できる) method.call(arg)

これがあれば

method = case hoge when 1 SomeClass.method(:hoge) when 2 SomeClass.method(:fuga) method.call(piyo)

みたいな処理がかける。