【发布时间】:2013-03-22 04:43:23
【问题描述】:
我的职能是:
def hello(str)
puts "hello #{str}"
end
def hello_scope(scope, &block)
# ???
end
我想在我的方法块中临时增加一个函数。
在hello_scope 中,我只想将scope 字符串添加到str,然后再将其传递给原始hello 方法。这是一个例子:
hello 'world' #=> hello world
hello_scope "welcome!" do
hello 'bob' #=> welcome!hello bob
hello 'alice' #=> welcome!hello alice
end
当谈到 Ruby 中的这种事情时,我是个菜鸟。有人可以帮我以优雅的方式解决这个问题吗?
编辑:
如果它使事情变得更容易,如果我们将方法作为参数传递给块就可以了,例如:
hello_scope "welcome!" do |h|
h "bob" #=> welcome!hello bob
h "alice" #=> welcome!hello alice
end
【问题讨论】:
-
如果不重写
hello方法,您可能无法很好地做到这一点。 -
@AndrewMarshall 我进行了编辑;这会让事情变得更可行吗?