参见英文答案 >
Blocks and yields in Ruby10个
我一直在Ruby中编写相同的代码模式,看起来它会受益于’do’样式的代码,但我不确定如何编写该方法.
我一直在Ruby中编写相同的代码模式,看起来它会受益于’do’样式的代码,但我不确定如何编写该方法.
x.increment!(:step_count) # same each time # ...then some different code each x.update_column(:step_description,"blerg message") # same each time
我觉得它会受益于’做’这样的东西……
update_steps "blerg message" do # ...then some different code each end
然后在’do’内部每次执行公共代码.
我将如何制作一个可以使用’do’的方法.
谢谢!
编辑:我认为不要关闭它是很重要的,因为我不知道要搜索’block’或’yield’.可能不知道这些术语的人最终可能会搜索“do”.
解决方法
传递一个块作为参数
def my_method(&block) do_something_the_same yield # calls whatever is inbetween "do" and "end" end