Есть ли сокращение, если (без других) в Ruby on Rails?
Я знаю, что в Ruby есть сокращенный однострочный оператор if/else:
a ? b : c
Есть ли какой-нибудь один оператор if? Вместо этого:
if a
# do something
end
Есть ли сокращенная версия этого?
Ответ 1
Вы можете использовать условия сообщения (не обращайте внимания на имя, оно будет оценено до кода. И do_something будет выполняться только в том случае, если условие оценивает значение правды (т.е. не nil или false)).
do_something if a
Ответ 2
do_something if a
Сначала будет оцениваться условие if (в данном случае a), и если оно true (или в случае a, а не false или nil), оно выполнит do_something. Если он false (или nil), он перейдет к следующей строке кода, никогда не выполняющемуся do_something.