ブロックとプロシージャについて学習しようとしていますが、これは実行可能であるべきだと感じていますが、これまでのところ成功していません。
私が欲しいもの:
def main_action(generic_variable, block)
generic_variable += 1 # I do more interesting stuff than this in my version
yield(generic_variable)
end
main_action(3, {|num| num + 5 })
または似たようなもの。
私が見つけた最も近いものはhttp://mudge.name/2011/01/26/passing-blocks-in-ruby-without-block.htmlで、ブロックを送信するために passing メソッドを作成する必要があるようでした:
class Monkey
# Monkey.tell_ape { "ook!" }
# ape: ook!
# => nil
def self.tell_ape(&block)
tell("ape", &block)
end
def self.tell(name, &block)
puts "#{name}: #{block.call}"
end
end
コードで設定された同じ引き渡し方法を使用すると、それを機能させることができますが、不要なコードのようです。Monkey.tell("ape", { "ook!" })
直接電話してみましたが、syntax error, unexpected '}', expecting tASSOC
1回の呼び出しで変数とブロック(またはproc、私はうるさいわけではありません)を関数に送信することは可能ですか? また、時間があれば、上で何が起こっているのですか?なぜそれがうまくいかないのですか?