【发布时间】:2023-12-12 20:56:01
【问题描述】:
有什么方法可以在被调用的块中获取被调用的对象。例如,块是否有任何方法可以访问方法 batman 或类 SuperHeros 的范围
class SuperHeros
attr_accessor :news
def initialize
@news = []
end
def batman task
puts "Batman: #{task} - done"
yield "feed cat"
@news << task
end
end
cat_woman = lambda do |task|
puts "Cat Woman: #{task} - done"
# invoker.news << task
end
robin = lambda do |task|
puts "Robin: #{task} - done"
# invoker.news << task
end
characters = SuperHeros.new
characters.batman("kick Joker's ass", &cat_woman)
characters.batman("break Bane's bones", &robin)
【问题讨论】: