Das gefällt mir wirklich gut:
var value = maxValue > minValue ? minValue : maxValue;
Gibt es etwas ebenso Prägnantes in Coffescript?
Das gefällt mir wirklich gut:
var value = maxValue > minValue ? minValue : maxValue;
Gibt es etwas ebenso Prägnantes in Coffescript?
Antworten:
value = if maxValue > minValue then minValue else maxValue
quelle
value = `maxValue > minValue ? minValue : maxValue`
value = Math.min minValue, maxValue
Es gibt eine weitere knappe Option sowohl in Javascript und Coffeescript :)
value = Math.min(minValue, maxValue)
quelle
value = Math.min minValue, maxValue
;)Conditional operator in Coffeescript
nach demJS
Beispiel und wie man es schreibt . Es ist nur ein Beispiel und hat nichts mit dem eigentlichen Syntaxproblem zu tun.Wie Răzvan Panda betont, könnte mein Kommentar tatsächlich eine der besseren Antworten sein:
quelle
Dies ist ein Fall, in dem es sich anfühlt, als hätte CoffeeScript konkurrierende Philosophien:
Da alle Operationen ein Ergebnis zurückgeben, gibt Ihnen die if / then / else-Vorgehensweise das, was Sie benötigen. Das Hinzufügen des Operators? /: Ist redundant.
Hier wünschte ich mir, sie würden uns den ternären Operator? /: Geben, obwohl er redundant ist ... er liest sich einfach besser als die if / then / else-Variante.
Nur mein 2c.
quelle
a ? b : c
Ternär in CoffeeScript ohne Mehrdeutigkeit zu haben, daa ? b
es eine Bedeutung hat ("a
wenn es nicht null ist,b
sonst) undb: c
auch eine ({b: c}
).Sie können es so schreiben:
value = if maxValue > minValue then minValue else maxValue
Es wird wie Ihr Code kompiliert.
quelle
Unten ist die Tatsache:
In der Dokumentation gibt es einen Abschnitt mit dem Titel "Bedingungen, Ternäre und bedingte Zuweisung" . Dies lässt vermuten, dass Coffeescript unterstützt
condition ? when-true : when-false
aber in der Tat nicht.
Unten finden Sie Informationen zu dem Patch, mit dem dieses Problem behoben werden kann
Hier ist der Patch (und er wird an coffeescript.org gesendet ):
http://github.com/jashkenas/coffee-script/commit/ec2d358ae3c82e9888c60695d7cce05edde0c55a
Beispiele:
mood = greatlyImproved if singing if happy and knowsIt clapsHands() chaChaCha() else showIt() date = if friday then sue else jill options or= defaults
quelle
if then else
ist eine ternäre Operation, sie hat nur eine andere Syntax.if then else
Anweisung wird als ternär klassifiziert . Der korrekte Begriff für den "ternären" Operator in Javascript ist ohnehin ein bedingter Operator .Dies ist eigentlich nicht korrekt, überprüfen Sie die Kommentare.
quelle
minValue
gleich0
undmaxValue
gleich5
, dannmaxValue > minValue ? minValue : maxValue
würde zurückkehren0
, während zurückkehrenmaxValue > minValue && minValue || maxValue
würde5
.