السلطان
  1. الرئيسية
  2. الأمثلة
  3. التحكم في التدفق

`طابق` على الأعداد والمدى والحروف والنصوص والقيم المنطقية

control_flow/match_patterns.sn
// `طابق` على الأعداد والمدى والحروف والنصوص والقيم المنطقية.
استورد std.io.println;

عرف صف_العدد(القيمة: عدد): نص {
    طابق القيمة مع
    | 0 -> { أرجع "صفر"; }
    | -1 | 1 -> { أرجع "واحد"; }
    | مدى 2 إلى 9 -> { أرجع "رقم"; }
    | _ -> { أرجع "كبير"; };
}

عرف صف_الحرف(القيمة: حرف): نص {
    طابق القيمة مع
    | مدى 'a' إلى 'z' -> { أرجع "حرف لاتيني صغير"; }
    | مدى '0' إلى '9' -> { أرجع "رقم"; }
    | 'س' | 'ص' -> { أرجع "حرف عربي"; }
    | _ -> { أرجع "آخر"; };
}

عرف صف_الكلمة(القيمة: نص): نص {
    طابق القيمة مع
    | "نعم" | "حسنا" -> { أرجع "موافقة"; }
    | "لا" -> { أرجع "رفض"; }
    | _ -> { أرجع "غير معروف"; };
}

عرف الرئيسية(): عدد {
    اطبع_سطر(صف_العدد(0));
    اطبع_سطر(صف_العدد(-1));
    اطبع_سطر(صف_العدد(7));
    اطبع_سطر(صف_العدد(250));
    اطبع_سطر(صف_الحرف('q'));
    اطبع_سطر(صف_الحرف('5'));
    اطبع_سطر(صف_الحرف('س'));
    اطبع_سطر(صف_الكلمة("حسنا"));
    اطبع_سطر(صف_الكلمة("ربما"));
    أرجع 0;
}

التشغيل

بالمفسر، دون ترجمة:

./build/sultanc run examples/ar/control_flow/match_patterns.sn

أو ترجمه إلى ملف تنفيذي:

./build/sultanc examples/ar/control_flow/match_patterns.sn -o build/example && ./build/example

المصدر على GitHub   كل الأمثلة