Ich muss den Wert auf a
die von einer Bedingung abhängt.
Was ist der kürzeste Weg, dies mit CoffeeScript zu tun?
So würde ich es z.B. in JavaScript machen:
a = true ? 5 : 10 # => a = 5
a = false ? 5 : 10 # => a = 10
Ich muss den Wert auf a
die von einer Bedingung abhängt.
Was ist der kürzeste Weg, dies mit CoffeeScript zu tun?
So würde ich es z.B. in JavaScript machen:
a = true ? 5 : 10 # => a = 5
a = false ? 5 : 10 # => a = 10
Da alles ein Ausdruck ist und somit einen Wert ergibt, können Sie einfach if/else
.
a = if true then 5 else 10
a = if false then 5 else 10
Sie können mehr über Ausdrucksbeispiele sehen aquí .
a = if true then 5 else 10
a = if false then 5 else 10
Voir Dokumentation .
Coffeescript unterstützt nicht javascript ternärer Operator. Hier ist der Grund aus dem coffeescript-Autor :
Ich liebe ternäre Operatoren genauso sehr wie jeder andere mehr), aber die Syntax ist nicht das, was sie gut macht - sie sind Sie sind großartig, weil sie ein if/else auf einer einzigen Zeile als Ausdruck.
Ihre Syntax ist nur ein weiteres Stück geheimnisvoller Magie, das man auswendig lernen muss, mit ohne Analogie zu irgendetwas anderem in der Sprache. Das Ergebnis ist dasselbe, hätte ich viel lieber
if/elses
immer gleich aussehen zu einem Ausdruck kompiliert werden).In CoffeeScript werden also selbst mehrzeilige ifs zu ternären Werten kompiliert kompiliert, wenn es angemessen ist, ebenso wie if-Anweisungen ohne else-Klausel:
if sunny go_outside() else read_a_book(). if sunny then go_outside() else read_a_book()
Beide werden zu Ternären, beide können als Ausdrücke verwendet werden. Es ist konsistent, und es gibt keine neue Syntax zu lernen. Also, danke für den Vorschlag, aber ich schließe dieses Ticket als "wontfix".
Bitte beachten Sie die Github-Ausgabe: https://github.com/jashkenas/coffeescript/issues/11#issuecomment-97802
Sie können es auch in zwei Aussagen schreiben, wenn es meistens wahr ist:
a = 5
a = 10 if false
Oder verwenden Sie eine switch-Anweisung, wenn Sie mehr Möglichkeiten benötigen:
a = switch x
when true then 5
when false then 10
Mit einem Booleschen Wert mag es überdimensioniert sein, aber ich finde es sehr gut lesbar.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.