Может вернуться и остальные заявления будут использоваться взаимозаменяемо в CFScript?
-
08-10-2019 - |
Вопрос
Я хотел бы узнать ваше мнение по использованию return
а также else
Заявления взаимозаменяются в CFScript. Я обычно использую следующий синтаксис:
if (something) {
// Do something
}
else {
// Do something else
}
Это недавно произошло мне, я мог бы сделать это вместо этого:
if (something) {
// Do something
return;
}
// Do something else
Эти два стиля дают другой конечный результат? Мне нравится не охватывать код в else
утверждение. Я думаю, что если if
Заявление оценивает true и возврат, код ниже его не будет работать. Если он не оценивает true, то код ниже он будет работать независимо от того, завернутый он в else
заявление или нет.
Это звучит правильно?
Решение
ColdFusion, как большинство языков, дает множество способов достижения того же. Работа программиста состоит в том, чтобы выбрать правильную для ситуации. Конечно, «правильно» может иметь много интерпретаций, но я бы сказал, что правильный путь ясен, лаконичный и масштабируемый.
В этом случае нет реальных показателей или «строк кода» различий. Использование возврата для совершенно другого ветвления кода не понятно для моих глаз, однако, используя ранний стиль возврата для выручения функции из-за недействительных условий (опять же IMO) более понятным. Рассмотрим следующие случаи:
if (not isdefined("url.param1")) {
return;
}
if (not len(url.param1)) {
return;
}
if (not refind("[0-9]+", url.param1)) {
return;
}
doSomethingToValid(url.param1);
против
if (isdefined("url.param1")) {
if (len(url.param1)) {
if (refind("[0-9]+", url.param1)) {
doSomethingToValid(url.param1);
}
}
}
В первом случае я могу увидеть всю валидацию, которая будет применяться в списке, и я могу получить все это из-за спереди, что позволяет мне сосредоточиться на реальном веществе рутины. Во втором случае я похоронил значительную часть рутины глубоко в вложенном разделе IFS, и когда мне нужно добавить еще одно правило к проверке, что структура кода просто становится более сложной.
Другие советы
Два способа написания это вернется те же результаты, но для читаемости предпочтительно предпочтительно