2

Rubyでこのメタプログラミングを達成しようとしています

my_array = 1..10
method = :each

my_array.send(method) {|num| puts num }

これは機能しません。ブロックを動的に渡す方法を知っている人はいますか? 私はすでに試しました:

my_array.send(:each, lambda{|num| puts num })
my_array.send(:each, Proc.new{|num| puts num })

しかし、何も機能しませんでした。ありがとう!

4

1 に答える 1

8

最初のスニペットはまったく問題ありません。これでうまくいくはずです。

(1..10).send(:each) { |num| puts(num) }
于 2012-07-13T13:07:09.617 に答える