2011-09-16 23 views
12

estoy luchando por encontrar ningún buenos ejemplos de CoffeeScript y coincidencia de patrones, aparte de este tipo de ejemplos:Concordancia de patrones en CoffeeScript

{x, y} = sprite 
css = {opacity, fontFamily} 

he utilizado coincidencia de patrones en Erlang pero estoy luchando por encontrar un poco más avanzada ejemplos en coffeescript que ilustran exactamente lo que es posible.

Respuesta

19

Ah, Me pareció reconocer esos ejemplos: http://pragprog.com/magazines/2011-05/a-coffeescript-intervention :)

de coincidencia de patrón de CoffeeScript (más formalmente llamado "asignación desestructuración", para distinguirla de patrón de coincidencia en Erland y Scala, que es bastante diferente) puede ser utilizado para extraer información de muy elaborar estructuras de datos. Aquí está un ejemplo de la official docs:

{poet: {name, address: [street, city]}} = futurists 

que es esencialmente equivalente a

poet = futurists.poet 
name = poet.name 
street = poet.address[0] 
city = poet.address[1] 

En la práctica, sin embargo, asignación desestructurada se utiliza principalmente para agarrar uno o dos propiedades de los objetos, como en los ejemplos que usted ha mencionado , o para obtener partes de una matriz. Por ejemplo, puede intercambiar los valores de dos variables a y b escribiendo

[a, b] = [b, a] 

y, usando símbolos de, usted puede obtener los valores primero y último de una serie arr escribiendo

[first, middle..., last] = arr 

I Espero que ayude. Por supuesto, hay más ejemplos en mi libro, CoffeeScript: Accelerated JavaScript Development.

2

Hay una biblioteca que proporciona una forma de escribir construcciones tipo Erlang directamente en coffeescript sin precompilación, solo envuélvalo en una función especial. Puede encontrarlo aquí: https://github.com/nogizhopaboroda/f_context.

Cuestiones relacionadas