Frage

Wer einen guten Trick hat die Standard-ternäre Syntax zu erinnern?

Insbesondere, ob die '?' oder ‚:‘ steht an erster Stelle. Ich habe konsequent diese rückwärts über die Jahre hinweg.

War es hilfreich?

Lösung

Die Bedingung, die Sie überprüft werden, ist wie eine Art von Frage, so das Fragezeichen steht an erster Stelle.

x > 0 ? 1 : 0

Denken Sie an diese Aussage als drei englische Sätze: „Ist x größer als 0 Then 1. Else, 0?“ Sie haben einen Satz für jede Klausel in der Erklärung.

Das Prädikat:

x > 0 ? /* Is x greater than 0? */

Der "wahre" Zweig:

1 /* Then 1. */

Der "false" Zweig:

: 0 /* Else, 0. */

Andere Tipps

Was Erinnerns, das Symbol zuerst kommt, ich denke nur an die Tatsache, dass der erste Teil eine Frage: „Ist es wahr oder nicht?“, So die Fragezeichen geht zuerst.

Ich denke an die Syntax auf diese Weise

Question ? Yes : No

in Python ich es als normaler englischen Satz zu lesen:

 a equals b if condition is true else c

Denken auf diese Weise davon: eine ternäre Anweisung besteht aus drei Teilen: der Frage, um den Code auszuführen, wenn die Antwort auf die Frage „ja“ und der Code, wenn die Antwort „Nein“. Das "?" kommt nach der Frage, wie es in englischen Sätzen der Fall ist.

"?" Marke ist eine Frage, so bedeutet es „wenn“.

Ein Doppelpunkt bedeutet, "jetzt kommt es", "dann tun".

Das Gute an dem ternären Operator ist, dass Sie es nicht zu benutzen sind gezwungen, vor allem, wenn Sie Probleme haben, die Syntax zu erinnern. Verwenden Sie einfach eine if-Anweisung, die besser lesbar meisten Zeiten ist.

Und nein -. Das ternäre hat keine bessere Performace dann eine if-Anweisung

Es geht so:

myVariable = this.testMethod() ? 'value for true case' : 'value for false case'

Wenn Sie Unit-Tests sind immer noch passieren, wenn Sie es falsch ist, dann entweder es spielt keine Rolle, oder Ihre Tests decken nicht genug von den Pfaden durch den Code. Wenn es zu lange ist eine Lücke es zwischen der Eingabe und bekommt einen Pass / von den Tests fehlschlagen, das ist ein anderes Thema. Nur sehr wenige kleine Syntax nits Materie in Gegenwart gute, schnelle Tests.

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