ठीक है, सिर्फ मेरे अपने नोट्स के लिए मैं गया हूं और Holger Just's answer पर निर्माण कर रहा हूं, निम्नलिखित के साथ आना: रूबी में स्क्वायर ब्रैकेट का उपयोग 6 उपयोगों में विभाजित किया जा सकता है, उनमें से 3 रूबी की विधि परिभाषाओं और उनमें से 3 अर्थपूर्ण संरचनाओं का एक हिस्सा है।
विधि परिभाषा
वस्तु वर्ग तरीकों सरणी के माध्यम से निर्माण :: [], हैश :: []
Array.[](1,2,3) #=> [1,2,3] #Un-sugared notation
Array["a","b","c"] #=> ["a","b","c"] #Sugared equivalent
Hash["a", 100, "b", 200] #=> {"a"=>100, "b"=>200}
शाब्दिक कंस्ट्रक्टर्स से कोई लेना देना कुछ भी नहीं है, हालांकि यह करता है वही चीज।
उदाहरण विधियों के माध्यम से तत्व संदर्भ Array # [], Bignum # [], Continuation # [], Fixnum # [], हैश # [], MatchData # [], विधि # [], ProC# [], स्ट्रिंग # [], Struct # [], प्रतीक # [], थ्रेड # [], और कक्षा तरीकों डिर :: [], ENV :: []
ary = [1,2,"abc", [15,16,[26,27]]]
ary.[](2) #=> "abc" #Un-sugared notation
ary[2] #=> "abc" #Sugared equivalent
ary[0,2] #=> [1,2]
ary[3][2][1] #=> 26
[1,2,3][0] #=> 1
"Is a string"[7,3] #=> "rin"
तत्व उदाहरण विधियों के माध्यम से काम सरणी # [] =, हैश # [] =, स्ट्रिंग # [] =, Struct # [] =, थ्रेड # [] =, और वर्ग विधि ENV :: [] =
ary = [1,2,3]
ary.[]=(1,"abc") #=> [1,"abc",3] #un-sugared notation
ary[2] = "def" #=> [1,"abc","def"] #Sugared equivalent
hash = {"a"=>1, "b"=>2}
hash["a"] = 3 #=> {"a"=>3, "b"=>2}
सिमेंटिक निर्माणों
शाब्दिक शृंखला निर्माता के माध्यम से वस्तु निर्माण
ary = []
रूबी में शाब्दिक कंस्ट्रक्टर्स का एक समूह है कि के उपयोग के माध्यम से संबंधित वर्ग की एक वस्तु बनाने के हैं (आमतौर पर) एक साधारण प्रतीक जोड़ी, सरणी वस्तुओं के लिए शाब्दिक कन्स्ट्रक्टर स्क्वायर ब्रैकेट्स: ऐरे []
, हैश {}
, प्रो ->(){}
, रेंज ..
और ...
, रेगेक्स //
, स्ट्रिंग ""
और ''
, प्रतीक :
और :""
। % अंकन
%q[hello there you] #=> "hello there you" # String % notation
%w[hello there you] #=> ["hello", "there", "you"] # Array % notation
के माध्यम से
वस्तु निर्माण यह है नहीं, कडाई के वर्ग ब्रैकेट अंकन, बल्कि दो प्रतीक-जोड़ी अंकन जिनमें से आप वर्ग कोष्ठक का उपयोग कर सकते यदि आप चाहें तो।तो %[email protected] there [email protected]
समान रूप से मान्य है।
रूबी के नियमित अभिव्यक्ति
/[^A-Fa-f0-9]/
वर्गाकार कोष्ठक रूबी नियमित अभिव्यक्ति में चरित्र वर्गों से संकेत मिलता है।
मुझे Dir :: glob विधि में उपयोग के लिए एक पैटर्न के रूप में []
का एक और उपयोग मिला, लेकिन यह नियमित रूप से अभिव्यक्तियों में बिल्कुल कार्य करता है। फिर भी, यह इंगित करता है कि रुबी के 1500+ तरीकों में संभवतः अधिक उपयोग छिपे हुए हैं।
http://ruby-doc.org/core-1.9.3/ पर जाएं और "विधि" खोज बॉक्स में '[]' टाइप करें, जो आपको कोर में इसके उपयोगों की एक सूची देगा। गैर-मूल वर्ग, निश्चित रूप से, '[]' और '[] = 'ऑपरेटरों के लिए अपने स्वयं के कार्यान्वयन प्रदान कर सकते हैं। –
कुछ उदाहरण दें! – Ashe
[] और [] = विधियों में कोई समस्या नहीं है,% w [a b c] और [1,2,3] [1] सरणी अनुक्रमण के बारे में क्या? और क्या? '[]' पूरे स्थान पर पॉप-अप हो रहा है और मुझे जो पता नहीं है उसके बारे में मुझे असहज होना शुरू हो रहा है। –