【发布时间】:2011-07-27 16:19:14
【问题描述】:
我正在用 Ruby 1.9.2 编写一个模块,它定义了几种方法。当调用这些方法中的任何一个时,我希望它们中的每一个都首先执行某个语句。
module MyModule
def go_forth
a re-used statement
# code particular to this method follows ...
end
def and_multiply
a re-used statement
# then something completely different ...
end
end
但我想避免将 a re-used statement 代码明确地放在每个方法中。有办法吗?
(如果重要,a re-used statement 将拥有每个方法,在调用时打印自己的名称。它将通过puts __method__ 的某些变体来实现。)
【问题讨论】:
-
这个问题与 Ruby 1.9.2 有关。但是这些天来,如果您刚刚发现这个问题,那么您可能正在使用 Ruby 2+。在 Ruby 2+ 中,
prepend是一个不错的选择。参见,例如,stackoverflow.com/questions/4219277/…
标签: ruby methods module metaprogramming