شارة الاسم

شارة الاسم

تمرين تعلّمي

مقدمة

Nil

Nil كلمة إنجليزية تعني "لا شيء" أو "صفر". وفي Elixir، nil قيمة خاصة تعني غياب قيمة.

# I do not have a favorite color
favorite_color = nil

وفي لغات برمجة أخرى، قد تؤدي القيم null أو none دورًا مشابهًا.

If

إلى جانب cond، يوفّر Elixir أيضًا الماكرو if/2، وهو مفيد عندما تحتاج إلى التحقق من شرط واحد فقط.

if/2 يقبل شرطًا وخيارين. وهو يُرجع الخيار الأول إذا كان الشرط صحيحًا، والخيار الثاني إذا كان غير صحيح.

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"

هذا التركيب مفيد للتعبيرات القصيرة جدًا، لكن يُفضَّل تجنّبه إذا كان التعبير أطول من أن يتّسع في سطر واحد.

القيم الصحيحة و_غير الصحيحة_

في Elixir، تُقيَّم جميع أنواع البيانات إلى قيمة صحيحة أو غير صحيحة عندما تظهر في سياق منطقي (مثل تعبير if). وتُعتبر كل البيانات صحيحة باستثناء false وnil. وعلى وجه الخصوص، تُعتبر السلاسل النصية الفارغة والعدد الصحيح 0 والمصفوفات الفارغة كلها صحيحة في 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 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.