0Pricing
Erlang OTP: Distributed & Fault-Tolerant Systems Programming · درس

مطابقة الأنماط وعبارات الحراسة

أتقن مطابقة الأنماط وعبارات الحراسة في Erlang، أساس الشيفرة التعبيرية في Erlang التي تقلل الحاجة إلى التفرعات.

مطابقة الأنماط وعبارات الحراسة درس مجاني في Erlang OTP: Distributed & Fault-Tolerant Systems Programming على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Erlang OTP: Distributed & Fault-Tolerant Systems Programming، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Erlang OTP: Distributed & Fault-Tolerant Systems Programming 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Matching, Not Assigning

In Erlang = is the match operator, not assignment: it binds left-side variables to right-side values, or fails if they cannot match.

X = 42.
% X is now bound to 42

Destructuring Tuples

Pattern matching can destructure compound terms like tuples in a single step, pulling values straight out.

{ok, Value} = {ok, 100}.
% Value is bound to 100

Matching Lists

The [Head | Tail] pattern splits a list into its first element and the remaining rest.

[First | Rest] = [1, 2, 3].
% First = 1, Rest = [2, 3]

The Pin / Bound Match

Once a variable is bound, reusing it in a pattern matches against its value rather than rebinding it.

X = 5.
{X, Y} = {5, 10}.  % matches, Y = 10
{X, Y} = {7, 10}.  % fails: X is bound to 5

The Underscore Wildcard

The underscore wildcard _ matches anything and binds nothing — use it for parts you do not care about.

{_, Important} = {ignore_me, 99}.
% Important = 99

Function Clause Matching

Function clauses are tried top to bottom, choosing the first whose arguments match. This replaces many if/else chains.

describe(0) -> zero;
describe(1) -> one;
describe(_) -> many.

What Are Guards?

Guards add extra conditions to a clause with when; the clause fires only if both the pattern and the guard succeed.

classify(N) when N > 0 -> positive;
classify(N) when N < 0 -> negative;
classify(_) -> zero.

Allowed Guard Expressions

Guards must be side-effect-free — only comparisons, arithmetic, and type tests like is_integer or is_list are allowed.

kind(X) when is_integer(X) -> int;
kind(X) when is_list(X) -> list;
kind(_) -> other.

Combining Guards

Combine guard tests with , for AND and ; for OR.

in_range(X) when X >= 1, X =< 10 -> yes;
in_range(_) -> no.

Matching in case

The case expression matches a value against patterns (with optional guards) and returns the branch that fits.

case lists:keyfind(id, 1, List) of
  {id, V} -> V;
  false -> not_found
end.

Why It Matters

Pattern matching and guards make Erlang declarative — you describe data shapes instead of branching, the same skill you will use for messages.

Quick Check

Test your matching knowledge.

Recap

Recap: = matches and binds, you destructure tuples and lists, and function clauses with guards replace manual branching.

الأسئلة الشائعة

هل درس «مطابقة الأنماط وعبارات الحراسة» مجاني؟

نعم — نص درس «مطابقة الأنماط وعبارات الحراسة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Erlang OTP: Distributed & Fault-Tolerant Systems Programming، انتقل إلى CoddyKit PRO. تتضمن دورة Erlang OTP: Distributed & Fault-Tolerant Systems Programming 4 دروس في المجموع.

ماذا ستتعلم في «مطابقة الأنماط وعبارات الحراسة»؟

أتقن مطابقة الأنماط وعبارات الحراسة في Erlang، أساس الشيفرة التعبيرية في Erlang التي تقلل الحاجة إلى التفرعات. تتمرن على Erlang OTP: Distributed & Fault-Tolerant Systems Programming مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Erlang OTP: Distributed & Fault-Tolerant Systems Programming؟

لا تُشترط خبرة سابقة. Erlang OTP: Distributed & Fault-Tolerant Systems Programming على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «مطابقة الأنماط وعبارات الحراسة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Erlang OTP: Distributed & Fault-Tolerant Systems Programming هذا؟

نعم. كل درس في Erlang OTP: Distributed & Fault-Tolerant Systems Programming يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مقدمة إلى Erlang والآلة الافتراضية
  2. عمليات Erlang وتبادل الرسائل
  3. أنماط التزامن الأساسية
  4. مطابقة الأنماط وعبارات الحراسة
← العودة إلى Erlang OTP: Distributed & Fault-Tolerant Systems Programming