मैं जानता हूँ कि इस सवाल पुराना है, लेकिन मुझे लगता है कि मैं दिखाने चाहते हैं कि मैं क्या इनपुट प्राप्त करने के लिए अपना मानक पद्धति के रूप में इस्तेमाल करते हैं।
require 'readline'
def input(prompt="", newline=false)
prompt += "\n" if newline
Readline.readline(prompt, true).squeeze(" ").strip
end
यह वास्तव में अच्छा है क्योंकि अगर उपयोगकर्ता अंत में या शुरू में अजीब रिक्त स्थान कहते है, यह उन से हटा देंगे, और यह कि वे क्या अतीत में प्रवेश किया के एक इतिहास रखता है (true
false
के लिए परिवर्तित करें ऐसा करने के लिए ऐसा नहीं है।)। और, यदि ARGV
खाली नहीं है, तो gets
इनपुट प्राप्त करने के बजाय ARGV
में फ़ाइल से पढ़ने का प्रयास करेगा। इसके अलावा, Readline
रूबी मानक लाइब्रेरी का हिस्सा है, इसलिए आपको किसी भी रत्न को स्थापित करने की आवश्यकता नहीं है। साथ ही, gets
का उपयोग करते समय आप अपने कर्सर को स्थानांतरित नहीं कर सकते हैं, लेकिन आप Readline
के साथ कर सकते हैं।
और, मैं जानता हूँ कि विधि एक पंक्ति नहीं है, लेकिन यह है जब आप इसे
name = input "What is your name? "
की तरह लिखा जा सकता है कि यह एक समारोह है कि संकेत पाठ लेता है और इनपुट पाठ रिटर्न करें? यदि आप फैनसीयर प्राप्त करना चाहते हैं और एकाधिक प्रॉम्प्ट/इनपुट चक्र की आवश्यकता है तो आप फ़ंक्शन को प्रॉम्प्ट की एक सरणी ले सकते हैं और ब्लॉक को प्रॉम्प्ट पर लूप कर सकते हैं और प्रत्येक इनपुट उत्पन्न कर सकते हैं। – asm