J'aime vraiment ça:
var value = maxValue > minValue ? minValue : maxValue;
Y a-t-il quelque chose d'aussi concis dans Coffeescript?
value = if maxValue > minValue then minValue else maxValue
Il y a une option concise plus en javascript et coffeescript :)
value = Math.min(minValue, maxValue)
Comme le souligne Răzvan Panda, mon commentaire pourrait en fait être l'une des meilleures réponses:
value = `maxValue > minValue ? minValue : maxValue`
C'est un cas où on a l'impression que CoffeeScript a des philosophies concurrentes:
Puisque toutes les opérations renvoient un résultat, la façon de faire si/alors/sinon vous donne ce dont vous avez besoin. L'ajout de l'opérateur? /: Est redondant.
C'est là que je souhaite qu'ils nous donnent l'opérateur? /: Ternaire même s'il est redondant ... il se lit simplement mieux que la variante if/then/else.
Juste mon 2c.
Vous pouvez l'écrire comme ceci:
value = if maxValue > minValue then minValue else maxValue
Il se compilera comme votre code.
Dans la documentation, il y a une section intitulée "Conditions, ternaires et affectation conditionnelle" . Cela porte à croire que coffeescript prend en charge
condition ? when-true : when-false
mais en fait ce n'est pas le cas.
Voici le patch (et il est poussé vers coffeescript.org):
http://github.com/jashkenas/coffee-script/commit/ec2d358ae3c82e9888c60695d7cce05edde0c55a
mood = greatlyImproved if singing
if happy and knowsIt
clapsHands()
chaChaCha()
else
showIt()
date = if friday then sue else jill
options or= defaults