Διαδρομές
/
Elixir
Elixir
/
Ασκήσεις
/
Καρτελάκι ονόματος
Καρτελάκι ονόματος

Καρτελάκι ονόματος

Άσκηση εκμάθησης

Εισαγωγή

Nil

Το Nil είναι μια αγγλική λέξη που σημαίνει "τίποτα" ή "μηδέν". Στην Elixir, το nil είναι μια ειδική τιμή που σημαίνει απουσία μιας τιμής.

# I do not have a favorite color
favorite_color = nil

Σε άλλες γλώσσες προγραμματισμού, οι τιμές null ή none μπορεί να παίζουν παρόμοιο ρόλο.

If

Εκτός από το cond, η Elixir παρέχει επίσης το μάκρο if/2, το οποίο είναι χρήσιμο όταν χρειάζεται να ελέγξεις μόνο μία συνθήκη.

Το if/2 δέχεται μια συνθήκη και δύο επιλογές. Επιστρέφει την πρώτη επιλογή αν η συνθήκη είναι truthy, και τη δεύτερη επιλογή αν η συνθήκη είναι falsy.

age = 15

if age >= 16 do
  "You are allowed to drink beer in Germany."
else
  "No beer for you!"
end

# => "No beer for you!"

Είναι επίσης δυνατό να γράψεις μια έκφραση if σε μία μόνο γραμμή. Πρόσεξε το κόμμα μετά τη συνθήκη.

if age > 16, do: "beer", else: "no beer"

Αυτή η σύνταξη είναι χρήσιμη για πολύ σύντομες εκφράσεις, αλλά καλύτερα να την αποφεύγεις αν η έκφραση δεν χωράει σε μία μόνο γραμμή.

Truthy και falsy

Στην Elixir, όλοι οι τύποι δεδομένων αξιολογούνται σε μια τιμή truthy ή falsy όταν συναντώνται σε ένα boolean πλαίσιο (όπως μια έκφραση if). Όλα τα δεδομένα θεωρούνται truthy εκτός από το false και το nil. Συγκεκριμένα, οι κενές συμβολοσειρές, ο ακέραιος 0 και οι κενές λίστες θεωρούνται όλα truthy στην Elixir.

Οδηγίες

Σε αυτή την άσκηση θα γράψεις κώδικα για να εκτυπώνεις κονκάρδες με ονόματα για τους εργαζόμενους ενός εργοστασίου. Οι εργαζόμενοι έχουν ένα αναγνωριστικό, ένα όνομα και το όνομα του τμήματός τους. Οι ετικέτες των κονκάρδων των εργαζομένων έχουν την εξής μορφή: "[id] - name - DEPARTMENT".

1. Εκτύπωσε μια κονκάρδα για έναν εργαζόμενο

Υλοποίησε τη συνάρτηση NameBadge.print/3. Θα πρέπει να δέχεται ένα αναγνωριστικό, ένα όνομα και ένα τμήμα. Θα πρέπει να επιστρέφει την ετικέτα της κονκάρδας, με το όνομα του τμήματος σε κεφαλαία γράμματα.

NameBadge.print(67, "Katherine Williams", "Strategic Communication")
# => "[67] - Katherine Williams - STRATEGIC COMMUNICATION"

2. Εκτύπωσε μια κονκάρδα για έναν νέο εργαζόμενο

Λόγω μιας ιδιορρυθμίας του υπολογιστικού συστήματος, οι νέοι εργαζόμενοι μερικές φορές δεν έχουν ακόμη αναγνωριστικό όταν αρχίζουν να εργάζονται στο εργοστάσιο. Επειδή οι κονκάρδες είναι υποχρεωτικές, θα λαμβάνουν μια προσωρινή κονκάρδα χωρίς το πρόθεμα του αναγνωριστικού.

Επέκτεινε τη συνάρτηση NameBadge.print/3. Όταν λείπει το αναγνωριστικό, θα πρέπει να εκτυπώνει μια κονκάρδα χωρίς αυτό.

NameBadge.print(nil, "Robert Johnson", "Procurement")
# => "Robert Johnson - PROCUREMENT"

3. Εκτύπωσε μια κονκάρδα για τον ιδιοκτήτη

Ακόμη και ο ιδιοκτήτης του εργοστασίου πρέπει να φοράει κονκάρδα ανά πάσα στιγμή. Ωστόσο, ο ιδιοκτήτης δεν έχει τμήμα. Σε αυτή την περίπτωση, η ετικέτα θα πρέπει να εκτυπώνει "OWNER" αντί για το όνομα του τμήματος.

Επέκτεινε τη συνάρτηση NameBadge.print/3. Όταν λείπει το τμήμα, υπέθεσε ότι η κονκάρδα ανήκει στον ιδιοκτήτη της εταιρείας.

NameBadge.print(204, "Rachel Miller", nil)
# => "[204] - Rachel Miller - OWNER"

Σημείωσε ότι είναι πιθανό ο ιδιοκτήτης να είναι και νέος εργαζόμενος.

NameBadge.print(nil, "Rachel Miller", nil)
# => "Rachel Miller - OWNER"
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Elixir Exercism

Έτοιμος να ξεκινήσεις την άσκηση Καρτελάκι ονόματος;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Elixir με 58 έννοιες168 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.