इनपुट और आउटपुट संभालने के लिए फंक्शन IO मॉड्यूल में मिलते हैं।
मानक आउटपुट पर एक स्ट्रिंग लिखने के लिए IO.puts का इस्तेमाल कीजिए। IO.puts स्ट्रिंग के अंत में हमेशा एक नई लाइन जोड़ता है। अगर आपको यह व्यवहार नहीं चाहिए, तो इसके बजाय IO.write का इस्तेमाल कीजिए। दोनों फंक्शन सफल होने पर एटम :ok लौटाते हैं।
IO.puts("Hi!")
# > Hi!
# => :ok
IO.puts स्ट्रिंग लिखने के लिए तो काम आता है, लेकिन इसके अलावा ज़्यादा कुछ नहीं कर सकता। अगर आपको डीबगिंग के लिए ऐसा टूल चाहिए जिससे आप कोई भी वैल्यू मानक आउटपुट पर लिख सकें, तो इसके बजाय IO.inspect का इस्तेमाल कीजिए। IO.inspect जो वैल्यू इसे दी जाती है, उसे बिना बदले लौटा देता है, इसलिए इसे अपने कोड में कहीं भी डाला जा सकता है। यह कई विकल्प भी लेता है, जैसे :label, जिनकी मदद से आप इसे IO.inspect की दूसरी कॉल से अलग पहचान सकते हैं।
मानक इनपुट से एक लाइन पढ़ने के लिए IO.gets का इस्तेमाल कीजिए। IO.gets एक आर्गुमेंट लेता है, एक स्ट्रिंग, जिसे यह इनपुट के लिए प्रॉम्प्ट की तरह प्रदर्शित करता है। IO.gets प्रॉम्प्ट के बाद नई लाइन नहीं जोड़ता, ज़रूरत हो तो उसे आप खुद जोड़िए।
IO.gets("What's your name?\n")
# > What's your name?
# < Mary
# => "Mary\n"
आपको और आपके दोस्तों को कागज़ और कलम वाले रोल-प्लेइंग गेम खेलना बहुत पसंद है, लेकिन आपने देखा है कि नए लोगों को अपने समूह से जोड़ना मुश्किल होता है। किरदार बनाने में उन्हें अक्सर कठिनाई होती है। उन्हें पता ही नहीं चलता कि शुरू कहाँ से करें। नए खिलाड़ियों की मदद के लिए आपने एक छोटा प्रोग्राम लिखने का फैसला किया है, जो उन्हें पूरी प्रक्रिया में मार्गदर्शन देगा।
RPG.CharacterSheet.welcome/0 फंक्शन बनाइए। इसे स्वागत संदेश प्रिंट करना चाहिए और :ok लौटाना चाहिए।
RPG.CharacterSheet.welcome()
# > Welcome! Let's fill out your character sheet together.
# => :ok
RPG.CharacterSheet.ask_name/0 फंक्शन बनाइए। इसे एक सवाल प्रिंट करना चाहिए, जवाब का इंतज़ार करना चाहिए, और जवाब के आगे और पीछे की खाली जगह हटाकर वह जवाब लौटाना चाहिए।
RPG.CharacterSheet.ask_name()
# > What is your character's name?
# < Mathilde
# => "Mathilde"
RPG.CharacterSheet.ask_class/0 फंक्शन बनाइए। इसे एक सवाल प्रिंट करना चाहिए, जवाब का इंतज़ार करना चाहिए, और जवाब के आगे और पीछे की खाली जगह हटाकर वह जवाब लौटाना चाहिए।
RPG.CharacterSheet.ask_class()
# > What is your character's class?
# < healer
# => "healer"
RPG.CharacterSheet.ask_level/0 फंक्शन बनाइए। इसे एक सवाल प्रिंट करना चाहिए, जवाब का इंतज़ार करना चाहिए, और वह जवाब पूर्णांक के रूप में लौटाना चाहिए।
RPG.CharacterSheet.ask_level()
# > What is your character's level?
# < 2
# => 2
RPG.CharacterSheet.run/0 फंक्शन बनाइए। इससे नए खिलाड़ी का स्वागत होना चाहिए, किरदार का नाम, क्लास और लेवल पूछा जाना चाहिए, और किरदार की शीट एक मैप के रूप में लौटाई जानी चाहिए। इसे मैप को "Your character" लेबल के साथ प्रिंट भी करना चाहिए।
RPG.CharacterSheet.run()
# > Welcome! Let's fill out your character sheet together.
# > What is your character's name?
# < Mathilde
# > What is your character's class?
# < healer
# > What is your character's level?
# < 2
# > Your character: %{class: "healer", level: 2, name: "Mathilde"}
# => %{class: "healer", level: 2, name: "Mathilde"}
Exercism पर साइन अप कीजिए और Elixir को 58 कॉन्सेप्ट168 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।