Может вернуться и остальные заявления будут использоваться взаимозаменяемо в CFScript?

StackOverflow https://stackoverflow.com/questions/4629594

Вопрос

Я хотел бы узнать ваше мнение по использованию 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, и когда мне нужно добавить еще одно правило к проверке, что структура кода просто становится более сложной.

Другие советы

Два способа написания это вернется те же результаты, но для читаемости предпочтительно предпочтительно

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top