रूबी काम में [वर्ग ब्रैकेट] पद्धति को कैसे परिभाषित करता है?
This question and all comments follow the
"Attribution Required."
इसी तरह की समस्याएं
- रूबी में एक मॉड्यूल के अंदर एक विधि को परिभाषित करना (NoMethodError)
- methods - रूबी (?) ऑपरेटर कैसे काम करता है?
- ruby on rails - एक्टिवरकॉर्ड संबंध पर विधि को परिभाषित करें
- metaprogramming - रूबी में कक्षा के तरीकों को गतिशील रूप से परिभाषित करना
- syntax - रूबी में परिभाषित करने की विधि समान है
- इसी तरह के और सवाल >>
सभी उत्तर
माणिक में कई भाषाओं के विपरीत तरीके कुछ विशेष वर्ण हो सकते हैं। जिनमें से एक सरणी लुकअप सिंटैक्स है।
यदि आप अपने स्वयं के हैश वर्ग को लागू करते हैं, जहां आपके हैश में एक आइटम प्राप्त करते समय, आप इसे उल्टा करना चाहते थे, तो आप इसे नीचे रख सकते हैं:
आप इसे निम्नलिखित के साथ हैश कहकर साबित कर सकते हैं:
तो डीईएफ़ [] ने उस विधि को परिभाषित किया जिसका उपयोग आप करते हैं
my_array["key"]
अन्य तरीके जो आपको अजीब लग सकते हैं:बस स्पष्ट करने के लिए, एक की परिभाषा
[]
विधि arrays या hashes के लिए असंबंधित है। निम्नलिखित (विपरीत) उदाहरण लें:यह सिंटैक्टिक शुगर है। कुछ सिंटैक्स पैटर्न हैं जो संदेश भेजने में अनुवादित होते हैं। विशेष रूप से
के समान है
और यही बात लागू होती है
==
,!=
,<
,>
,<=
,>=
,<=>
,===
,&
,|
,*
,/
,-
,%
,**
,>>
,<<
,!==
,=~
तथा!~
भी।इसके अलावा,
के समान है
और यही बात लागू होती है
~
.फिर,
के समान है
और यही बात लागू होती है
-
.प्लस,
के समान है
बसने वालों के लिए विशेष वाक्यविन्यास भी है:
के समान है
और अंतिम लेकिन कम से कम, अनुक्रमण के लिए विशेष वाक्यविन्यास है:
के समान है
तथा
के समान है
वर्ग कोष्ठक विधि नाम जैसे हैं
Array#size
आपके पासArray#[]
एक विधि के रूप में और आप इसे किसी अन्य विधि की तरह भी उपयोग कर सकते हैं:अंतिम वाक्य चीनी की तरह कुछ है और पहले वाले के समान ही करता है।
Array#+
समान काम:आप इस तरह से संख्याएँ जोड़ सकते हैं:
उसी के साथ काम करता है
/
,*
,-
और बहुत सारे।यह एक ऑपरेटर अधिभार है, यह आपके द्वारा परिभाषित की गई कक्षा के अंदर एक विधि के व्यवहार को ओवरराइड या पूरक करता है, या एक वर्ग जिसके व्यवहार को आप संशोधित कर रहे हैं। आप इसे [] से अलग अन्य ऑपरेटरों के लिए कर सकते हैं। इस मामले में आप []] के व्यवहार को संशोधित कर रहे हैं, जब इसे क्लास सॉन्गलिस्ट के किसी भी उदाहरण पर बुलाया जाता है।
यदि आपके पास गीतसूची = सोंग लिस्ट.न्यू है और फिर आप गीत सूची ["फोब्बर"] करते हैं, तो आपका कस्टम डिफ ऑपरेशन में आ जाएगा और यह मान लेगा कि "फोबार" को पैरामीटर (कुंजी) के रूप में पारित किया जाना है और यह "फोबार" को करेगा "जो भी विधि कहती है उसे कुंजी के लिए किया जाना चाहिए।
प्रयत्न
Leave a Reply