Различные синтаксические варианты могут быть более удобными и легко читаемыми в разное время.Это полезный инструмент для разработчика, позволяющий выбрать наиболее читаемый и очевидный синтаксис для конкретной задачи.
Это может быть показано для вашего unless
примера:
ПростымВ логическом выражении нет реального преимущества использования, если или если, хотя могут быть личные предпочтения в зависимости от того, насколько хорошо конкретный разработчик считает, что выглядит:
if !my_bool_var
#
end
unless my_bool_var
#
end
Они одинаково легко читаются (и пишутся).
Однако, с более сложными логическими выражениями, форма if
имеет недостатки:
if !((a + b + c) < (x-a)*b && my_bool_var || ((x - a)*b)/(c+1) > 2)
#
end
unless (a + b + c) < (x-a)*b && my_bool_var || ((x - a)*b)/(c+1) > 2
#
end
Здесь форма исключением немного легче читать, потому что мы точно знаем, чтоне относится ко всему выражению, в то время как с формой if мы должны визуально сопоставить скобки, что может быть сложно в таких сложных выражениях, хотя подсветка синтаксиса в редакторах несколько помогает в этом.