我有一个方法,为了检查它是否正在传递一个块,我执行以下操作:
if block_given?
res = yield(array[i], array[i+1])
else
res = array[i] - array[i+1]
end
然而,RuboCop正在给我一个警告,我在if block_given?
行中并不理解:
使用条件变量赋值和比较的返回
还有其他更多的rubyist方法吗?
由于
答案 0 :(得分:20)
警告告诉你的是:
res = if block_given?
yield(array[i], array[i+1])
else
array[i] - array[i+1]
end
即,只有一个分配而不是两个(甚至更多)。