これができるかどうか、そして構文はどうなるか興味があります。私は次の場所にいます:
def say_it
puts "before"
yield("something here")
puts "after"
end
say_it do |val|
puts "here is " + val
yield("other things") # ???
end
おそらくノーだと思いますが、ブロックがProcに変換された場合はどうでしょうか。
事前にthx
これができるかどうか、そして構文はどうなるか興味があります。私は次の場所にいます:
def say_it
puts "before"
yield("something here")
puts "after"
end
say_it do |val|
puts "here is " + val
yield("other things") # ???
end
おそらくノーだと思いますが、ブロックがProcに変換された場合はどうでしょうか。
事前にthx
ブロックを取得するメソッド内yield
からのみ意味があります。
そして、はい、彼らは巣を作ることができます。ご了承ください:
yield
)は、メソッドに厳密に関連付けられています。例:
def double(x)
yield x * 2
end
def square_after_double(x)
double(x) do |r|
# Yields to the block given to the current method.
# The location of the yield inside another block
# does not change a thing.
yield r * r
end
end
square_after_double(3) do |r|
puts "doubled and squared: " + r.to_s
end