Ruby: используйте возврат условия для назначения и сравнения переменных
У меня есть метод, и чтобы проверить, передается ли ему блок, я делаю следующее:
if block_given?
res = yield(array[i], array[i+1])
else
res = array[i] - array[i+1]
end
Однако RuboCop дает мне предупреждение, которое я не очень понимаю в if block_given?
линия:
Используйте возврат условия для назначения и сравнения переменных
Есть ли другой, более рубиновый способ сделать это?
Спасибо
1 ответ
Решение
Что предупреждение говорит вам сделать это:
res = if block_given?
yield(array[i], array[i+1])
else
array[i] - array[i+1]
end
То есть иметь одно назначение вместо двух (или даже больше).