我有一个方法,为了检查它是否被传递一个块,我执行以下操作:
if block_given?
res = yield(array[i], array[i+1])
else
res = array[i] - array[i+1]
end
Run Code Online (Sandbox Code Playgroud)
然而,RuboCop正在给我一个警告,我不明白这一点if block_given?:
使用条件的返回值进行变量赋值和比较
还有其他更多的rubyist方式吗?
谢谢
眠りネ*_*ネロク 32
警告告诉你要做的是:
res = if block_given?
yield(array[i], array[i+1])
else
array[i] - array[i+1]
end
Run Code Online (Sandbox Code Playgroud)
也就是说,只有一个赋值而不是两个(甚至更多).
| 归档时间: |
|
| 查看次数: |
9352 次 |
| 最近记录: |