جم

جملة `case` في Elixir

58 تمرينًا

نبذة عن جملة `case`

case بنية للتحكم في مسار التنفيذ تسمح لنا بمقارنة قيمة معينة بعدة أنماط. تُقيَّم الفروع في تعبير case من الأعلى إلى الأسفل، حتى يتم العثور على تطابق.

في كثير من الحالات، يكون استخدام case قابلًا للتبادل مع تعريف فروع دالة متعددة. ويمكن استخدام مطابقة الأنماط والحُرّاس في فروع case.

# one function clause, multiple case clauses
def age_group(age) do
  case age do
    0 -> ~c"infant"
    age when age < 4 -> ~c"baby"
    age when age < 13 -> ~c"child"
    age when age < 18 -> ~c"teenager"
    _ -> ~c"adult"
  end
end

# multiple function clauses, no case
def age_group(0), do: ~c"infant"
def age_group(age) when age < 4, do: ~c"baby"
def age_group(age) when age < 13, do: ~c"child"
def age_group(age) when age < 18, do: ~c"teenager"
def age_group(_), do: ~c"adult"

لا توجد قواعد صارمة لاختيار أحد الأسلوبين على حساب الآخر. فالمسألة مسألة تفضيل شخصي تعتمد عادةً على السياق.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة

تعلّم جملة `case`

التدريب مقفل

افتح تمرينين إضافيين لممارسة جملة `case`