有没有在Ruby中的几个函数的末尾插入更多代码?
这里我有一些方法
def foo
# do something
end
def bar
# do something else
end
现在我想在每个函数p "#{__method__}"
和foo
的末尾添加bar
之类的代码行。反正有吗?
答案 0 :(得分:1)
你想要的是什么,但你可以使用元编程动态地做类似的事情。 Method#name
会给你相同的结果,当你打电话给__method__
时,你会打赌会得到什么。这是一个代码,向您展示逻辑,我现在正在思考:
def foo
x = 2
end
def bar
y = 3
end
[:foo,:bar].each do |m|
method(m).instance_eval{ val = call; puts "#{name} returned #{val * 2} after multiply by 2"}
end
<强>输出强>
foo returned 4 after multiply by 2
bar returned 6 after multiply by 2