من الدليل
يدعم jq المجموعة نفسها من أنواع البيانات التي يدعمها JSON: الأعداد، والسلاسل النصية، والقيم المنطقية، والمصفوفات، والكائنات (وهي في لغة JSON جداول تجزئة لا تحتوي إلا على مفاتيح نصية)، و"null".
لنركّز على الأعداد.
جميع الأعداد، سواء كانت صحيحة أو غير ذلك، هي أعداد ذات فاصلة عائمة مزدوجة الدقة وفق معيار IEEE754. وهذا يقيّدنا بدقة مقدارها 53 بت.
العوامل المعتادة متاحة للاستخدام مع الأعداد:
الحساب: +, -, *, /, %
المقارنة: ==, !=, <, <=, >=, >
دوال الرياضيات القياسية
بالنسبة للدوال ذات المُدخل الواحد، مرّر القيمة إلى الدالة عبر الأنبوب
$ jq -n '(1 | atan) * 4'
3.141592653589793
بالنسبة للدوال ذات المُدخلين، تتجاهل الدوال المُدخل وتتوقع المُدخلين كمعاملات (تذكّر أن المعاملات تفصل بينها الفواصل المنقوطة)
$ jq -n 'pow(2; 10)'
1024
الفاصلة المنقوطة هي الفاصل بين وسائط الدالة، لا الفاصلة.
jq أخرىلحل التمرين، ستحتاج إلى معرفة التعبيرات الشرطية.
يستخدم jq تعبير if-then-else من أجل التعبيرات الشرطية.
وبما أنه تعبير، فإنه يوضع داخل خط الأنابيب.
الصيغة هي: if CONDITION then TRUE_EXPR else FALSE_EXPR end.
عبارة else اختيارية.
42 | if . < 33 then "small" else "larger" end
# => "larger"
تُستخدم elif لإضافة شروط أخرى
42 | if . < 33 then "small"
elif . < 67 then "medium"
else "large"
end
# => "medium"
في هذا التمرين ستكتب كودًا لتحليل الإنتاج في خط تجميع بأحد مصانع السيارات.
يمكن أن تتراوح سرعة خط التجميع بين 0 (متوقفة) و10 (الحد الأقصى).
عند أدنى سرعة (1)، ينتج خط التجميع 221 سيارة كل ساعة.
ويتزايد الإنتاج خطيًا مع زيادة السرعة.
لذا فعند ضبط السرعة على 4، ينبغي أن ينتج 4 * 221 = 884 سيارة في الساعة.
غير أن السرعات الأعلى تزيد احتمال إنتاج سيارات معيبة، وهو ما يفرض التخلص منها لاحقًا.
يوضح الجدول التالي كيف تؤثر السرعة في معدل النجاح:
1 إلى 4: معدل نجاح 100%.5 إلى 8: معدل نجاح 90%.9: معدل نجاح 80%.10: معدل نجاح 77%.لديك مهمتان.
احسب معدل إنتاج خط التجميع في الساعة مع مراعاة معدل النجاح.
احسب عدد السيارات المكتملة العاملة المنتَجة في الدقيقة.
سجّل في Exercism لتتعلّم وتتقن jq عبر 12 مفهومًا75 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.