A Nil egy angol szó, amely azt jelenti, hogy „semmi” vagy „nulla”. Az Elixirben a nil egy speciális érték, amely egy érték hiányát jelöli.
# I do not have a favorite color
favorite_color = nil
Más programozási nyelvekben a null vagy a none értékek hasonló szerepet tölthetnek be.
A cond mellett az Elixir a if/2 makrót is biztosítja, amely akkor hasznos, ha csak egyetlen feltételt kell ellenőrizned.
Az if/2 egy feltételt és két lehetőséget fogad. Az első lehetőséget adja vissza, ha a feltétel truthy, és a másodikat, ha a feltétel 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!"
Az if kifejezést egyetlen sorban is leírhatod. Figyeld meg a feltétel utáni vesszőt.
if age > 16, do: "beer", else: "no beer"
Ez a szintaxis nagyon rövid kifejezéseknél hasznos, de kerüld, ha a kifejezés nem fér el egyetlen sorban.
Az Elixirben minden adattípus truthy vagy falsy értékre értékelődik ki, amikor logikai kontextusban (például egy if kifejezésben) találkozik vele a program. Minden adat truthy-nak számít, kivéve a false és a nil értéket. Az üres stringek, a 0 egész szám és az üres listák például mind truthy-nak számítanak az Elixirben.
Ebben a feladatban olyan kódot írsz, amely névjelvényeket nyomtat egy gyár alkalmazottai számára. Minden alkalmazottnak van azonosítója, neve és részlegneve. Az alkalmazotti jelvények felirata a következő formátumú: "[id] - name - DEPARTMENT".
Valósítsd meg a NameBadge.print/3 függvényt. Paraméterként egy azonosítót, egy nevet és egy részleget kap. Adja vissza a jelvény feliratát úgy, hogy a részleg neve nagybetűvel szerepel benne.
NameBadge.print(67, "Katherine Williams", "Strategic Communication")
# => "[67] - Katherine Williams - STRATEGIC COMMUNICATION"
A számítógépes rendszer sajátossága miatt előfordul, hogy az új alkalmazottaknak a gyárban való kezdéskor még nincs azonosítójuk. Mivel a jelvény kötelező, ideiglenes jelvényt kapnak, amelyen nincs ott az azonosító előtagja.
Egészítsd ki a NameBadge.print/3 függvényt. Ha hiányzik az azonosító, akkor a függvény az azonosító nélkül nyomtatja ki a jelvényt.
NameBadge.print(nil, "Robert Johnson", "Procurement")
# => "Robert Johnson - PROCUREMENT"
Még a gyár tulajdonosának is mindig jelvényt kell viselnie. A tulajdonosnak viszont nincs részlege. Ebben az esetben a feliraton a részleg neve helyett "OWNER" szerepel.
Egészítsd ki a NameBadge.print/3 függvényt. Ha hiányzik a részleg, akkor feltételezd, hogy a jelvény a cég tulajdonosáé.
NameBadge.print(204, "Rachel Miller", nil)
# => "[204] - Rachel Miller - OWNER"
Vedd figyelembe, hogy előfordulhat, hogy a tulajdonos egyben új alkalmazott is.
NameBadge.print(nil, "Rachel Miller", nil)
# => "Rachel Miller - OWNER"
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Elixir nyelvet 58 fogalom168 feladat segítségével, valódi emberi mentorálással, mindez ingyen.