Могут ли операторы return и else взаимозаменяемо использоваться в CFScript? - PullRequest
1 голос
/ 07 января 2011

Мне бы хотелось узнать ваше мнение об использовании операторов return и else в CFScript. Я обычно использую следующий синтаксис:

if (something) {
  // Do something
}
else {
  // Do something else
}

Недавно мне пришло в голову, что я мог бы сделать это вместо:

if (something) {
  // Do something
  return;
}
// Do something else

Дадут ли эти два стиля разный конечный результат? Мне нравится не оборачивать код в оператор else. Я думаю, что если оператор if оценивает значение true и возвращает значение, приведенный ниже код не будет выполняться. Если он не оценивается как true, то приведенный ниже код будет работать независимо от того, включен он в оператор else или нет.

Это звучит правильно?

Ответы [ 2 ]

4 голосов
/ 07 января 2011

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, и когда мне нужно добавить еще одно правило для проверки, структура кода просто усложняется.

2 голосов
/ 07 января 2011

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

...