Οι συναρτήσεις για τον χειρισμό της εισόδου και της εξόδου παρέχονται από το module IO.
Για να γράψεις μια συμβολοσειρά στην τυπική έξοδο, χρησιμοποίησε το IO.puts. Το IO.puts προσθέτει πάντα μια νέα γραμμή στο τέλος της συμβολοσειράς. Αν δεν θέλεις αυτή τη συμπεριφορά, χρησιμοποίησε το IO.write. Και οι δύο συναρτήσεις επιστρέφουν το atom :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. Θα πρέπει να καλωσορίζει τον νέο παίκτη, να ρωτάει το όνομα, την κλάση και το επίπεδο του χαρακτήρα και να επιστρέφει το φύλλο χαρακτήρα ως map. Θα πρέπει επίσης να εκτυπώνει το map με την ετικέτα "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 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.