2011-09-16 24 views
12

我與發現CoffeeScript中的任何很好的例子和模式來自這些類的實例匹配除了掙扎匹配:格局的CoffeeScript

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

我已經使用模式在二郎山匹配,但我有發現一些更高級的掙扎咖啡腳本中的例子說明了什麼是可能的。

回答

19

啊,我還以爲我認出這些例子:http://pragprog.com/magazines/2011-05/a-coffeescript-intervention :)

CoffeeScript中的模式匹配(更正式地稱爲「解構賦值」將其從厄蘭和Scala模式匹配,這是相當不同的區分)可用來從提取信息非常詳細的數據結構。下面是來自official docs一個例子:

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

其基本上相當於

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

在實踐中,雖然,解構分配主要用於抓取一個或兩個對象屬性,如實施例中你提到,或從數組中獲取零件。例如,你可以通過編寫

[a, b] = [b, a] 

交換兩個變量ab的價值和使用提示圖標,你可以通過編寫

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

我得到一個數組arr的第一個和最後一個值希望有所幫助。我的書中有更多的例子,CoffeeScript: Accelerated JavaScript Development