質問

Ruby 1.9 Cの拡張機能を書いていますが、Rubyで以下をやりたいです。

notifier = Notifier.new
notifier.on 'click' do
  puts "clicked!"
end

これの問題は、Cメソッドでは、ブロックを「受信」しているだけで、私が知る限り、パラメーターでさえありません。 rb_yield.

だから私の質問は、Ruby 1.9 C拡張機能に、ブロックをProcなどに変換する方法があるので、モジュール内に保存して、いつでも必要/必要なときに電話をかけることができますか? Asyncコールバックのように!

私はすでにProcs/Lambdasでこれを実装していますが、ブロック構文を直接使用しないのは醜いです。

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top