मैं सी # से लिस्प तक स्कैला से हास्केल तक सब कुछ के साथ काम करने के दौरान ब्लॉक के आसपास रहा हूं, और उन सभी भाषाओं में जो उनके समर्थन में हैं, प्रतीकों ने काफी कुछ किया है; यानी, एक ही नाम वाले किसी भी दो प्रतीकों को समान होने की गारंटी है क्योंकि वे सिंगलटन ऑब्जेक्ट्स हैं।ईएस 6 सिंबल को समझना
रैकेट: (equal? 'foo 'foo)
सच
कॉमन लिस्प: (eq 'foo 'foo)
सच
रूबी: :foo == :foo
सच
स्काला: 'foo == 'foo
सच
ES6: Symbol('foo') === Symbol('foo')
झूठी
सिंगलेट्स होने वाले प्रतीकों का लाभ स्पष्ट है: आप उन्हें अपने इनपुट के बराबर नहीं होने के कारण अपने कुंजी को जोखिम के बिना मानचित्र/शब्दकोशों में उपयोग कर सकते हैं क्योंकि भाषा ने अचानक इसे अलग करने का फैसला किया है (रूबी आपको देख रहा है)
तो क्यों है यह कि ईसीएमएस्क्रिप्ट 6 इस पर एक अलग दृष्टिकोण लेता है, और मैं इसके आसपास कैसे हो सकता हूं?
क्यों 'सॉर्ट-ऑफ' - ' –
@ जारोमांडाएक्स' के लिए एक अच्छा तरीका लगता है, ठीक है, वे किसी भी तरह से स्कॉप्ड नहीं हैं, लेकिन मुझे लगता है कि किसी भी अन्य भाषा में प्रतीकों के लिए यह मामला है (Erlang , क्लोजर, ... और इस समय मैं यही सोच सकता हूं)। – Pointy
यह उत्तर "क्यों" को संबोधित नहीं करता है। – Ben