我正在尝试弄清楚如何将块传递到方法中。
基本上我有一个方法,而不是让用户写这个:
def user_config
@config[:config_value] = "what they want"
end我希望他们能够这样做:
user_config do
:config_value => "what they want"
end但我不知道如何在方法中使用块。
发布于 2010-07-08 18:04:13
调用块时会产生yield,因此如下所示:
def user_config
yield.each do |k, v|
@config[k] = v
end
end像这样调用
user_config do
{:config_value => "what they want"}
end应该像你想要的那样工作。块返回
{:config_value => "what they want"}获取散列中的每个键,并在@config散列中指定它的值。
发布于 2010-07-08 18:23:44
虽然@diegogs是正确的,并且他的解决方案将工作得很好,但我还是会避免在这种简单的情况下使用块。
def user_config(config_hash)
config_hash.each do |k,v|
@config[k] = v
end
end将会做得很好
user_config :config_value => "what they want", ...那个怎么样?
https://stackoverflow.com/questions/3202426
复制相似问题