ma1*_*w28 3 ruby arguments coding-style function block
在Ruby中,指定方法是否需要更好(样式?)&block?
只要方法体包含,选择似乎只是一种风格问题yield.
例如,给定:
def abc1(a, c)
puts a
yield
puts c
end
def abc2(a, c, &block)
puts a
yield
puts c
end
Run Code Online (Sandbox Code Playgroud)
以下两个电话:
abc1('a', 'c') { puts 'b' }
abc2('a', 'c') { puts 'b' }
Run Code Online (Sandbox Code Playgroud)
每个打印并返回相同的东西:
a
b
c
=> nil
Run Code Online (Sandbox Code Playgroud)
所以,如果它真的只是风格问题,那么常规(或更好的风格)是什么?
使用当前的代码,第一个更好.当你正在使用时yield,不需要使用&block,因为它是隐含的.但是,是的,有一点要提醒,你必须在使用时传递一个块yield,如果没有那么就会出现错误.虽然可以使用该错误来处理block_given?.
Ruby的yield语句从方法体中控制用户指定的块.因此,如果您再次使用&block它是多余的,所以不需要使用它.
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |