विधि Dir::glob
एक तर्क लेता है, और प्रदान करता है तर्क के तहत घोंसला वाली सभी निर्देशिकाओं की एक श्रृंखला और फ़ाइलें। (वहां से, आप [0]
के साथ सरणी के सूचकांक को पकड़ सकते हैं।) तर्क में झंडे के साथ मिलान करने के लिए एक पैटर्न शामिल हो सकता है। तर्क (पैटर्न, झंडे) विकल्प समान (लेकिन वास्तव में नहीं) नियमित अभिव्यक्ति हो सकते हैं।
पैटर्न के एक जोड़े सहित डॉक्स, से/झंडे कि आपकी रुचि का हो सकता है:
ध्यान दें कि यह पैटर्न एक regexp नहीं है, यह एक खोल ग्लोब के करीब है। झंडे पैरामीटर के अर्थ के लिए File.fnmatch
देखें। ध्यान दें कि केस संवेदनशीलता आपके सिस्टम पर निर्भर करती है (इसलिए File::FNM_CASEFOLD
अनदेखा किया जाता है), जैसा कि परिणाम लौटाया जाता है।
*
- किसी भी फ़ाइल से मेल खाता है। ग्लोब में अन्य मूल्यों से प्रतिबंधित किया जा सकता है। Regexp में / .* /x
के बराबर।
[set]
- सेट में किसी एक चरित्र से मेल खाता है। सेट नकारात्मक ([^a-z]
) सहित Regexp में चरित्र सेट की तरह व्यवहार करता है।
Dir::glob()
की आशुलिपि Dir[]
, हालांकि मैं लंबे समय से फार्म पसंद करते है। जैसा कि आपने उपरोक्त देखा है, ब्रैकेट का उपयोग तर्क के लिए एक विशेष पैटर्न/ध्वज को दर्शाता है। यहाँ (डॉक्स से) कुछ उदाहरण हैं कि बेहतर यह समझा जा सकता है:
Dir["config.?"] #=> ["config.h"]
Dir.glob("config.?") #=> ["config.h"]
Dir.glob("*.[a-z][a-z]") #=> ["main.rb"]
Dir.glob("*") #=> ["config.h", "main.rb"]
यह आप Dir
के लिए []
विधि को फिर से परिभाषित करने के लिए संभव है, लेकिन मुझे नहीं पता चलेगा कि - कई (और अपने आप) नहीं है बंदर-पैचिंग कोर रूबी कक्षाओं और मॉड्यूल की सिफारिश करें। हालांकि, आप अपनी खुद की कक्षा में विधि बना सकते हैं। निम्नलिखित देखें:
class User
# Class method => User.new[arg]
def self.[](arg)
end
# Instance method => @user[arg]
def [](arg)
end
end
अपनी बस वाक्यात्मक चीनी, 'Dir.glob के लिए एक उपनाम की तरह लग रहा ([स्ट्रिंग, ...], 0)' http://ruby-doc.org/core-2.2.0/Dir.html –
[Dir :: [\]] (http://ruby-doc.org/core-2.2.0/Dir.html#method-c- 5 बी -5 डी) एक बगीचे-विविध विधि है। इसे अपनी कक्षा में परिभाषित करने के लिए: 'कक्षा ए; def [] (अन्य); दूसरे रखता है; समाप्त; समाप्त; एनी ['बिल्ली'] => "बिल्ली" '। –
आपके दूसरे बिंदु के लिए -> http://stackoverflow.com/questions/13767240/ruby-how-to-make-a-public-static-method –