Ternaire opération en CoffeeScript

- Je besoin de créer de la valeur à a qui dépend d'une condition.

Quel est le chemin le plus court pour ce faire avec CoffeeScript?

E. g. c'est ce que je pourrais faire ça en JavaScript:

a = true  ? 5 : 10  # => a = 5
a = false ? 5 : 10  # => a = 10
  • double possible de opérateur Conditionnel en Coffeescript?
  • <rant> je souhaite café script pourrait avoir juste pris en charge l'opérateur ternaire de la syntaxe, c'est plus court et plus facile à lire que if else then </rant>
  • Boo. Ce n'est pas bon. Ternaires peut être sympa parfois.
  • Je pense que le ternaire serait de faire un café moins Ruby-ish, même si Ruby a que. Le but avec le café est toujours à la lisibilité et à l'arrondissement de rugueux coins.
  • d'accord, mais ce que vraiment je trouve le plus troublant est que a = true ? 5 : 10 est valable coffeescript, mais ne signifie pas une structure ternaire, à la place (en javascript), cela signifie: a = true ? true : {5:10} qui est connu comme une mauvaise chose® en Outre a = false ? {5 : 10} en coffeescript (en javascript) est équivalent à: a = true ? false : {5:10} Pour ce que ça vaut, je ne pense pas que c'est bon.
  • Il est peut-être pour le meilleur de préciser si..alors..sinon pour CoffeeScript. L' ? comme une existence opérateur fait beaucoup de sens: beast = yeti ? "bear" ou if yeti? then alert "It's a yeti!" rend l'utilisation de la ? assez bien.
  • Un opérateur ternaire en ligne avec une valeur d'objet fait coffeescript se comporter comme HAL est en train de mourir minutes. C'est tout simplement stupide.
  • Séparer opérateur ternaire n'est pas vraiment nécessaire en CoffeeScript comme if/then/else est déjà une expression et fait la même chose. Si vous êtes vraiment en manque, alors vous êtes plutôt utilisé en C ou la syntaxe JavaScript que vraiment dans le besoin. Si ce n'est pas assez lisible, et il n'est parfois arriver, il suffit de l'envelopper de toute expression entre parenthèses. Opérateur ? a été épargné pour plus de contrôles, qui sont absentes dans le JavaScript, comme déjà indiqué par @PaulOliver. Existentielle de l'opérateur est le meilleur.
  • l'opérateur ternaire et existentielle de l'opérateur pour les appels de méthode ont contradictoires syntaxe: a=b?(c+d):e; ce devrait être l'opérateur ternaire appel, ou existentielle de l'opérateur d'appel de la fonction b?

InformationsquelleAutor evfwcqcg | 2012-04-13