عوامل المقارنة في Julia تشبه نظيرتها في لغات أخرى كثيرة، وإن كانت تتضمن بعض الخيارات الإضافية لمحبي الرياضيات.
أما للمساواة، فالعاملان هما == (يساوي) و!= أو ≠ (لا يساوي).
txt = "abc"
txt == "abc" # true
txt != "abc" # false
txt ≠ "abc" # false (synonym for !=)
بالإضافة إلى ذلك، لدينا مختلف عوامل المقارنة الأكبر والأصغر.
1 < 3 # true
3 > 3 # false
3 <= 3 # true
3 ≤ 3 # true (synonym for <=)
4 >= 3 # true
4 ≥ 3 # true (synonym for >=)
وكما يحدث غالبًا مع Julia، فإن استخدام الرمز الرياضي يصبح سهلًا مع محرر مناسب. اكتب \ne أو \le أو \ge ثم TAB للحصول على ≠ أو ≤ أو ≥.
يستخدم المثال السابق الأعداد فقط، لكننا سنرى في أجزاء أخرى من المقرر أن أنواعًا إضافية متنوعة لها معنى ترتيبي، ويمكن اختبارها بأكبر من وأصغر من.
يمكن ربط عوامل المقارنة بعضها ببعض، وهو ما يتيح صياغة واضحة وموجزة:
n = 3
1 ≤ n ≤ 5 # true (n "between" two limits)
المثال السابق مرادف للتعبير 1 ≤ n && n ≤ 5.
if
هذه هي الصيغة الكاملة للجملة الشرطية if:
if conditional1
statements...
elseif conditional2
statements...
else
statements...
end
لا حاجة إلى الأقواس الهلالية () أو الأقواس المعقوفة {}، والإزاحة موجودة «فقط» لتحسين سهولة القراءة (لكن سهولة القراءة مهمة جدًا!).
كلٌّ من elseif وelse اختياري، ويمكن أن توجد عدة كتل elseif.
لكن end مطلوب.
يمكن تداخل الجمل الشرطية if، وإن كنت قد ترغب في تحسين سهولة القراءة بالاستخدام المدروس للأقواس الهلالية والإزاحات والتعليقات.
أقصر صيغة للجملة الشرطية if ستكون شيئًا كهذا:
if n < 0
n = 0
end
وللتذكير: التعبيرات التي تُقيَّم إلى true أو false فقط هي التي يمكن استخدامها كشروط.
وتتجنب Julia عمدًا أي فكرة عن «صحة القيمة»، لذا فالقيم الصفرية والسلاسل النصية الفارغة والمصفوفات الفارغة ليست مكافئة لـ false.
من الحالات البسيطة والشائعة اختيار إحدى قيمتين بناءً على شرط.
Julia، مثل كثير من اللغات، لديها عامل ثلاثي يجعل هذا أكثر إيجازًا.
الصيغة هي conditional ? value_if_true : value_if_false.
لذا يمكن إعادة كتابة المثال السابق على النحو التالي:
n = n < 0 ? 0 : n
لا يطلب المترجم الأقواس الهلالية، لكنها قد تحسّن سهولة القراءة.
في هذا التمرين ستكتب كودًا لتحليل الإنتاج في خط تجميع في مصنع سيارات.
يمكن أن تتراوح سرعة خط التجميع من 0 (متوقف) إلى 10 (الحد الأقصى).
عند أدنى سرعة له (1)، تُنتَج 221 سيارة كل ساعة.
يزداد الإنتاج خطيًا مع السرعة.
لذلك عند ضبط السرعة على 4، ينبغي أن يُنتج 4 * 221 = 884 سيارة في الساعة.
لكن السرعات الأعلى تزيد من احتمال إنتاج سيارات معيبة، لا بد من التخلص منها لاحقًا.
لديك ثلاث مهام. تأخذ كل دالة من الدوال المطلوبة معاملًا واحدًا من نوع عدد صحيح، هو سرعة خط التجميع.
نفّذ الطريقة success_rate() لحساب احتمال إنتاج عنصر دون خطأ عند سرعة معينة.
يوضح الجدول التالي كيف تؤثر السرعة في معدل النجاح:
0: معدل نجاح 0%.1 إلى 4: معدل نجاح 100%.5 إلى 8: معدل نجاح 90%.9: معدل نجاح 80%.10: معدل نجاح 77%.julia> success_rate(10)
0.77
نفّذ الطريقة production_rate_per_hour() لحساب معدل إنتاج خط التجميع في الساعة، مع مراعاة معدل نجاحه.
julia> production_rate_per_hour(6)
1193.4
لاحظ أن القيمة المُرجَعة عدد عشري.
نفّذ الطريقة working_items_per_minute() لحساب عدد السيارات الصالحة المنتَجة في الدقيقة:
julia> working_items_per_minute(6)
19
لاحظ أن القيمة المُرجَعة عدد صحيح: لا تُحتسب العناصر غير المكتملة.
سجّل في Exercism لتتعلّم وتتقن Julia عبر 35 مفهومًا128 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.