72 votes

Opérateur conditionnel dans Coffeescript

J'aime vraiment ça :

var value = maxValue > minValue ? minValue : maxValue;

Y a-t-il quelque chose d'aussi concis dans Coffescript ?

136voto

Tim Cooper Points 55292
value = if maxValue > minValue then minValue else maxValue

21voto

Ricardo Tomasi Points 13398

Il existe un plus option concise à la fois en javascript et coffeescript :)

value = Math.min(minValue, maxValue)

12voto

Peter Krnjevic Points 581

Comme le souligne Răzvan Panda, mon commentaire peut en fait être l'une des meilleures réponses :

value = `maxValue > minValue ? minValue : maxValue`

10voto

Brian Genisio Points 30777

C'est un cas où l'on a l'impression que CoffeeScript a des philosophies concurrentes :

  1. Soyez concis
  2. Ne soyez pas redondant

Puisque toutes les opérations renvoient un résultat, la façon de faire if/then/else vous donne ce dont vous avez besoin. L'ajout de l'opérateur ?/ : est redondant.

C'est là que j'aimerais qu'on nous donne l'opérateur ternaire ?/ : même s'il est redondant... il se lit simplement mieux que la variante if/then/else.

C'est juste mon avis.

3voto

v42 Points 1113

Vous pouvez l'écrire comme ceci :

value = if maxValue > minValue then minValue else maxValue

Il sera compilé comme votre code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X