У меня есть повторное сравнение, в котором я должен проверить, равны ли три переменные определенной переменной. Для простоты я создам сценарий, который иллюстрирует проблему, которую я испытываю.'DRY'ing мой синтаксис Ruby
if time == -1 and day_of_week == -1 and month == -1
мне было интересно, если есть лаконична, логически эквивалентный способ достижения этой же строки кода без повторения.
Сейчас я использую обходной способ сделать это следующим образом:
all_equal = true
[time_now, day_of_week, month].each { |value| all_equal = false if value != -1 }
if all_equal ....
Х, очевидно, это довольно поверх (и явно менее эффективны), но я считаю отсутствие повторения более приятно посмотри на.
Вы порекомендовали бы лучший подход к этому?
Спасибо!
в стороне от менее читаемых, вашей второй версии уступает, потому что она не позволяет оценить короткое замыкание. – RoundTower