Frage

Ich möchte Ihre Meinung wissen über die Verwendung return und else Aussagen austauschbar in CFScript. Ich verwende in der Regel die folgende Syntax:

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

Es vor kurzem fiel mir ein, ich könnte dies tun, anstatt:

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

Würden diese beiden Arten ein anderes Endergebnis ergeben? Ich mag es, nicht-Code in einer else Anweisung zu wickeln. Mein Denken ist, dass, wenn die if Aussage wahr und kehrt auswertet, wird der Code unten, damit er nicht ausgeführt wird. Wenn es nicht wahr ausgewertet werden, der folgende Code wird ausgeführt, unabhängig davon, ob es in einer else Aussage gewickelt ist oder nicht.

Klingt das richtig?

War es hilfreich?

Lösung

Coldfusion wie die meisten Sprachen bietet viele Möglichkeiten, die gleiche Sache erreichen. Die Aufgabe des Programmierers ist die richtige für die Situation zu holen. Natürlich „richtiger“ kann viele Interpretationen, aber ich würde sagen, die richtige Art und Weise klar, prägnant und skalierbar ist.

In diesem Fall gibt es keine wirkliche Leistung oder „Programmzeilen“ Unterschiede. eine Rückkehr zu einem ganz anderen Zweig des Code ist in meine Augen jedoch nicht klar, frühe Rückkehr Stil mit der Klemme zu helfen einer Funktion aufgrund ungültiger Bedingungen ist (wieder IMO) klarer. Betrachten Sie die folgenden Fälle:

if (not isdefined("url.param1")) {
  return;
}
if (not len(url.param1)) {
  return;
}
if (not refind("[0-9]+", url.param1)) {
  return;
}
doSomethingToValid(url.param1);

Vergleich

if (isdefined("url.param1")) {
  if (len(url.param1)) {
    if (refind("[0-9]+", url.param1)) {
      doSomethingToValid(url.param1);
    }
  }
}

Im ersten Fall kann ich alle die Validierung sehen, die in einer Liste angewandt werden, und ich kann alles aus dem Weg nach vorne bekommen, die mich auf der realen Substanz der Routine konzentrieren kann. Im zweiten Fall habe ich die wesentliche Teile der Routine tief in einem verschachtelten Abschnitt ifs begraben und wenn ich brauche eine andere Regel auf die Validierung hinzufügen, dass Code-Struktur wird nur komplizierter.

Andere Tipps

Die beiden Arten des Schreibens es die gleichen Ergebnisse liefern, aber aus Gründen der Lesbarkeit ist der erste Weg bevorzugt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top