我與發現CoffeeScript中的任何很好的例子和模式來自這些類的實例匹配除了掙扎匹配:格局的CoffeeScript
{x, y} = sprite
css = {opacity, fontFamily}
我已經使用模式在二郎山匹配,但我有發現一些更高級的掙扎咖啡腳本中的例子說明了什麼是可能的。
我與發現CoffeeScript中的任何很好的例子和模式來自這些類的實例匹配除了掙扎匹配:格局的CoffeeScript
{x, y} = sprite
css = {opacity, fontFamily}
我已經使用模式在二郎山匹配,但我有發現一些更高級的掙扎咖啡腳本中的例子說明了什麼是可能的。
啊,我還以爲我認出這些例子: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]
交換兩個變量a
和b
的價值和使用提示圖標,你可以通過編寫
[first, middle..., last] = arr
我得到一個數組arr
的第一個和最後一個值希望有所幫助。我的書中有更多的例子,CoffeeScript: Accelerated JavaScript Development。
有一個庫提供了一種方法來編寫類似於erlang的構造,而不需要預編譯,只需將其包裝在特殊函數中即可。你可以在這裏找到它:https://github.com/nogizhopaboroda/f_context。