كيفية استخدام بيان الحالة / التبديل في روبي

على الأغلب لغات الكمبيوترأو الحالة أو الشرطية (تُعرف أيضًا باسم مفتاح كهربائي) يقارن قيمة متغير بقيمة عدة ثوابت أو حرفية وينفذ المسار الأول بحالة مطابقة. في روبي، إنها أكثر مرونة (وقوية).

بدلاً من إجراء اختبار المساواة البسيط ، يتم استخدام عامل المساواة في الحالة ، مما يفتح الباب أمام العديد من الاستخدامات الجديدة.

هناك بعض الاختلافات عن اللغات الأخرى بالرغم من ذلك. في ج، بيان التبديل هو نوع من استبدال لسلسلة من إذا وانتقل صياغات. الحالات تسميات تقنيا ، و بيان التبديل ستذهب إلى التسمية المطابقة. يُظهر هذا سلوكًا يُسمى "سقوط" ، حيث لا يتوقف التنفيذ عندما يصل إلى تصنيف آخر.

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

النموذج الأساسي لبيان الحالة

الشكل الأساسي لبيان الحالة هو كما يلي.

كما ترى ، هذا شيء منظم مثل عبارة شرطية if / else if / else. الاسم (الذي سنطلق عليه اسم القيمة) ، في هذه الحالة التي يتم إدخالها من لوحة المفاتيح ، تتم مقارنة كل حالة من الحالات

instagram viewer
متى البنود (أي الحالات) ، والأول عندما يتم تنفيذ كتلة مع حالة مطابقة. إذا لم يتطابق أي منها ، فإن آخر سيتم تنفيذ الكتلة.

ما هو مثير للاهتمام هنا كيف تتم مقارنة القيمة بكل حالة. كما ذكر أعلاه ، في C ++، ولغات أخرى تشبه لغة سي ، يتم استخدام مقارنة بسيطة للقيمة. في روبي ، يتم استخدام عامل المساواة في الحالة.

تذكر أن نوع الجانب الأيسر من عامل المساواة في الحالة مهم ، وأن الحالات دائمًا ما تكون على الجانب الأيسر. لذلك ، بالنسبة لكل متى البند ، روبي سوف يقيم قيمة الحالة حتى يجد تطابق.

إذا كان علينا أن ندخل بوب، سيقيم روبي أولاً "أليس" "بوب"، والتي ستكون كاذبة منذ ذلك الحين خيط# يعرف بأنه مقارنة السلاسل. التالى، / [قرقز]. + / ط "بوب" سيتم إعدامه ، وهو خطأ منذ ذلك الحين بوب لا يبدأ بـ Q أو R أو Z.

نظرًا لعدم تطابق أي من الحالات ، سينفذ روبي بعد ذلك جملة أخرى.

كيف يأتي النوع إلى اللعب

الاستخدام الشائع لبيان الحالة هو تحديد نوع القيمة والقيام بشيء مختلف اعتمادًا على نوعه. على الرغم من أن هذا يكسر كتابة روبي المعتادة ، إلا أنه من الضروري أحيانًا القيام بالأشياء.

يعمل هذا باستخدام صف دراسي# (من الناحية الفنية ، فإن وحدة#) عامل التشغيل ، الذي يختبر ما إذا كان الجانب الأيمن هو؟ الجانب الأيسر.

الصيغة بسيطة وأنيقة:

نموذج آخر ممكن

إذا كان القيمة تم حذفه ، يعمل بيان الحالة بشكل مختلف قليلاً: فهو يعمل تمامًا مثل عبارة if / else if / else. مزايا استخدام بيان الحالة علىإذا بيان ، في هذه الحالة ، هي مجرد مستحضرات التجميل.

بناء جملة أكثر إحكاما

هناك أوقات عندما يكون هناك عدد كبير من الصغيرة متى شروط. ينمو بيان الحالة هذا بسهولة أكبر من أن يتناسب مع الشاشة. عندما يكون هذا هو الحال (لا يقصد التورية) ، يمكنك استخدام ثم الكلمة الرئيسية لوضع جسد متى بند على نفس السطر.

في حين أن هذا يجعل بعض الرموز كثيفة للغاية ، طالما أن كل منها متى بند مشابه جدا ، يصبح في الواقع أكثر مقروء.

عندما يجب عليك استخدام سطر واحد وخط متعدد عندما تكون البنود متروكة لك ، فهي مسألة أسلوب. ومع ذلك ، لا يوصى بخلط الاثنين - يجب أن يتبع بيان الحالة نمطًا ليكون مقروءًا قدر الإمكان.

تعيين الحالة

مثل إذا كانت عبارات ، يتم تقييم عبارات الحالة إلى العبارة الأخيرة في متى بند. وبعبارة أخرى ، يمكن استخدامها في المهام لتوفير نوع من الجدول. ومع ذلك ، لا تنس أن بيانات الحالة أقوى بكثير من عمليات البحث البسيطة عن المصفوفة أو التجزئة. مثل هذا الجدول لا يحتاج بالضرورة إلى استخدام حرفي في متى شروط.

إذا لم يكن هناك تطابق عند العبارة ولا يوجد شرط آخر ، فسيتم تقييم بيان الحالة إلى لا شيء.