tutorial loop for convertir coffee javascript coffeescript ternary-operator

javascript - loop - coffeescript vs typescript



OperaciĆ³n ternaria en CoffeeScript (7)

Coffeescript no admite el operador ternario javascript. Aquí está la razón del autor del coffeescript :

Me encantan los operadores ternarios tanto como el siguiente tipo (probablemente un poco más, en realidad), pero la sintaxis no es lo que los hace buenos, son geniales porque pueden encajar un if / else en una sola línea como un expresión.

Su sintaxis es solo un poco más de magia desconcertante para memorizar, sin análogo a ninguna otra cosa en el idioma. Siendo el resultado igual, preferiría tener if/elses siempre se ve igual (y siempre se compila en una expresión).

Por lo tanto, en CoffeeScript, incluso los ifs multilínea se compilarán en ternarios cuando sea apropiado, al igual que las sentencias if sin una cláusula else:

if sunny go_outside() else read_a_book(). if sunny then go_outside() else read_a_book()

Ambos se convierten en ternarios, ambos pueden ser utilizados como expresiones. Es consistente, y no hay nueva sintaxis que aprender. Entonces, gracias por la sugerencia, pero estoy cerrando este ticket como "wontfix".

Consulte el problema de github: github.com/jashkenas/coffeescript/issues/11#issuecomment-97802

Necesito establecer un valor que depende de una condición.

¿Cuál es la forma más corta de hacer esto con CoffeeScript?

Por ejemplo, así es como lo haría en JavaScript:

a = true ? 5 : 10 # => a = 5 a = false ? 5 : 10 # => a = 10


Dado que todo es una expresión, y por lo tanto resulta en un valor, solo puede usar if/else .

a = if true then 5 else 10 a = if false then 5 else 10

Puedes ver más sobre ejemplos de expresiones here .


En casi cualquier idioma, esto debería funcionar en su lugar:

a = true && 5 || 10 a = false && 5 || 10


También puede escribirlo en dos declaraciones si es sobre todo uso verdadero:

a = 5 a = 10 if false

O use una instrucción de cambio si necesita más posibilidades:

a = switch x when true then 5 when false then 10

Con un booleano puede ser demasiado grande pero lo encuentro muy legible.


Versión multilínea (por ejemplo, si necesita agregar comentarios después de cada línea):

a = if b # a depends on b then 5 # b is true else 10 # b is false


CoffeeScript no tiene operador ternario. Eso es lo que dicen los doctores.

Todavía puedes usar una sintaxis como

a = true then 5 else 10

Es mucho más claro.


a = if true then 5 else 10 a = if false then 5 else 10

Ver documentation .