Ответ 1
А, я думал, что я узнал эти примеры: http://pragprog.com/magazines/2011-05/a-coffeescript-intervention:)
Сравнение шаблонов CoffeeScript (более формально называемое "назначение деструктуризации", чтобы отличить его от сопоставления шаблонов в Erland и Scala, что совсем другое) может использоваться для извлечения информации из очень сложных структур данных. Вот пример официального документа :
{poet: {name, address: [street, city]}} = futurists
что по существу эквивалентно
poet = futurists.poet
name = poet.name
street = poet.address[0]
city = poet.address[1]
На практике, однако, назначение деструктуризации в основном используется для захвата одного или двух свойств объекта, как в приведенных вами примерах, или для получения деталей из массива. Например, вы можете поменять значения двух переменных a
и b
, написав
[a, b] = [b, a]
и, используя значки, вы можете получить первое и последнее значения массива arr
, написав
[first, middle..., last] = arr
Надеюсь, это поможет. В моей книге, конечно, больше примеров, CoffeeScript: ускоренная разработка JavaScript.