如何 define_method 完成并结束
How to define_method with a do and end
我正在编写一个利用 define_method
的程序,但我不明白如何定义这样一个方法:
def mymethod(variable) do
puts variable
puts yield
end
可以通过以下方式调用:
mymethod("hi") do
# this is yield
end
define_method :my_method do |str, &block|
# Do something here
yield # or block.call
# Do something here
end
您不能使用 yield
。您需要将其作为 proc 对象接收。
define_method(:mymethod) do |variable, &block|
puts variable
puts block.call
end
mymethod("foo"){"bar"}
# foo
# bar
mymethod("foo") do "bar" end
# foo
# bar
我正在编写一个利用 define_method
的程序,但我不明白如何定义这样一个方法:
def mymethod(variable) do
puts variable
puts yield
end
可以通过以下方式调用:
mymethod("hi") do
# this is yield
end
define_method :my_method do |str, &block|
# Do something here
yield # or block.call
# Do something here
end
您不能使用 yield
。您需要将其作为 proc 对象接收。
define_method(:mymethod) do |variable, &block|
puts variable
puts block.call
end
mymethod("foo"){"bar"}
# foo
# bar
mymethod("foo") do "bar" end
# foo
# bar