2011-09-16 12 views
12

मैं coffeescript के किसी भी अच्छे उदाहरण खोजने और पैटर्न उदाहरण के इन प्रकार से अलग मिलान के साथ संघर्ष कर रहा हूँ में मिलान: Erlang में मिलानपैटर्न coffeescript

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

मैं पैटर्न का इस्तेमाल किया है, लेकिन मैं कुछ और अधिक उन्नत खोजने के साथ संघर्ष कर रहा हूँ कॉफ़ीस्क्रिप्ट में उदाहरण जो वास्तव में बताते हैं कि क्या संभव है।

उत्तर

19

आह, मैंने सोचा कि मैं उन उदाहरणों को मान्यता दी: http://pragprog.com/magazines/2011-05/a-coffeescript-intervention :)

CoffeeScript के पैटर्न मिलान (अधिक औपचारिक रूप से बुलाया "destructuring काम" Erland और स्काला में पैटर्न मिलान, जो काफी अलग है से अलग करने) कर सकते हैं से विस्तृत डेटा संरचनाओं से जानकारी निकालने के लिए उपयोग किया जाए। यहाँ official docs से एक उदाहरण है:

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

जो अनिवार्य रूप से

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

व्यवहार में के बराबर है, हालांकि, destructuring काम मुख्य रूप से हथियाने एक या दो वस्तु संपत्तियों के लिए, प्रयोग किया जाता है के रूप में उदाहरण में आपका उल्लेख किया , या एक सरणी से भागों को प्राप्त करने के लिए। उदाहरण के लिए, आप संकेतों का उपयोग कर

[a, b] = [b, a] 

लिख कर दो चर a और b के मूल्यों स्वैप कर सकते हैं और, आप लिख

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

मैं द्वारा एक सरणी arr के पहले और अंतिम मान प्राप्त कर सकते उम्मीद है की वो मदद करदे। मेरी पुस्तक, CoffeeScript: Accelerated JavaScript Development में निश्चित रूप से अधिक उदाहरण हैं।

2

एक ऐसी लाइब्रेरी है जो बिना किसी संकलन के कॉफ़ीस्क्रिप्ट में एरलांग-जैसे निर्माण लिखने का एक तरीका प्रदान करती है, बस इसे विशेष फ़ंक्शन में लपेटें। आप इसे यहां पा सकते हैं: https://github.com/nogizhopaboroda/f_context