为什么会出现错误:
错误:
LocalJumpError
# ~> no block given (yield)
代码:
module M
def hello(text = 'bba')
puts "yo-#{text}" # => nil
end # => :hello
instance_methods # => [:hello]
m = instance_method(:hello) # => #<UnboundMethod: M#hello>
define_method(:bye) do |*args,&block|
yield # ~> LocalJumpError: no block given (yield)
m.bind(self).(*args,&block)
end # => :bye
end # => :bye
class A
include M # => A
end # => A
A.new.hello('vv') # => nil
A.new.bye('zz') do |p| # => #<A:0x00007fa8c401e090>
puts "ggg"
end
# >> yo-vv
# ~> LocalJumpError
# ~> no block given (yield)