الدوال المضمّنة
مرجع كامل للدوال المتاحة في زيد: صيغة الاستدعاء، والأنواع المدعومة، والمعاملات، والنتيجة، وهل تتغيّر القيمة الأصلية، وأهم الأخطاء.
كيف تستعمل هذا المرجع؟
تستدعي الدالة المضمّنة بكتابة نقطة بعد القيمة، ثم اسم الدالة: النص.طول() أو القائمة.أضف!(القيمة). ابحث أولًا في الفهرس عن نوع القيمة التي تعمل عليها، ثم افتح بطاقة الدالة لمعرفة المعاملات التي تستقبلها، والقيمة التي تعيدها، وهل تعدّل القيمة الأصلية.
فهرس حسب نوع القيمة
تفاصيل الدوال
.طول()
يُعيد عدد مكوّنات القيمة المستقبِلة في صورة عدد صحيح دقيق.
يعتمد ما يُعَدّ على نوع القيمة: نقاط Unicode في النص، وعناصر القائمة، ومدخلات القاموس، والقيم التي يولّدها النطاق.
لا تنشئ الدالة قائمةً من النطاق لحساب طوله، ولذلك تظل النتيجة دقيقة حتى عندما يتجاوز العدد ما يستطيع العدد العشري تمثيله بدقة.
- يعمل على
- نص، قائمة، قاموس، نطاق
- يعيد
- عدد صحيح دقيق
السلوك بحسب نوع القيمة
- نص
- يحسب نقاط Unicode، بما فيها التشكيل المنفصل، لا وحدات UTF-16.
- قائمة
- يحسب عناصر القائمة الحالية.
- قاموس
- يحسب أزواج المفاتيح والقيم.
- نطاق
- يحسب عدد القيم رياضيًا مع مراعاة النهاية والخطوة.
ملاحظات
- يجوز كتابة
.طولمن غير قوسين لأنها لا تستقبل معاملات.
مثال
الطول بحسب نوع المستقبل
اطبع "زيد".طول()اطبع [10، 20، 30].طول()اطبع {الاسم: "زيد"، الإصدار: "0.0.1"}.طول()اطبع (من 2 إلى 10 بخطوة 2).طول()
3325
يتكوّن النص من ثلاث نقاط Unicode، وتحتوي القائمة على ثلاثة عناصر، ويحتوي القاموس على مدخلين، ويولّد النطاق خمس قيم: 2 و4 و6 و8 و10.
.يحتوي؟(المطلوب)
.تحتوي؟(المطلوب)يختبر وجود جزء أو قيمة أو مفتاح داخل المستقبل.
يختلف معنى الاحتواء بحسب نوع القيمة. ففي النص تبحث الدالة عن نص فرعي مطابق، وفي القائمة عن عنصر مساوٍ، وفي القاموس عن مفتاح، وفي النطاق تتحقق من أن القيمة من القيم التي يولّدها.
تحتوي؟ اسم بديل للدالة نفسها؛ ولا يختلف السلوك أو نوع النتيجة بين الاسمين.
- يعمل على
- نص، قائمة، قاموس، نطاق
- المعامل
المطلوب— النص الفرعي أو القيمة أو المفتاح المراد البحث عنه.- يعيد
- قيمة منطقية
السلوك بحسب نوع القيمة
- نص
- يبحث عن نص فرعي مطابق تمامًا وحساس للتشكيل.
- قائمة
- يعيد
صحيحعند وجود عنصر مساوٍ للمطلوب. - قاموس
- يفحص المفاتيح؛ وإذا لم يكن المعامل نصًا، تُعيد الدالة
خطأمن دون رفع خطأ. - نطاق
- يفحص العضوية حسابيًا من غير توسيع النطاق.
ملاحظات
- كل نص يحتوي النص الفارغ.
يرفع خطأ عندما
- تُستدعى الدالة على نص، لكن المعامل ليس نصًا؛ ولا تحوّل لغة زيد القيمة إلى نص تلقائيًّا.
مثال
أربعة معاني للاحتواء
اطبع "لغة عربية".يحتوي؟("عربية")اطبع [10، 20، 30].تحتوي؟(20)اطبع {الاسم: "زيد"}.يحتوي؟("الاسم")اطبع (من 1 إلى 9 بخطوة 2).يحتوي؟(6)
صحيحصحيحصحيحخطأ
السطر الثاني يستخدم المرادف المؤنث. أما 6 فليس من قيم النطاق الفردية، لذلك تكون النتيجة الأخيرة خطأ.
.إلى عدد()
يحوّل النص العددي الكامل إلى عدد صحيح أو عشري بحسب صياغته.
تقبل الدالة الأرقام الغربية والعربية الهندية، والفاصلَين . و٫، والصيغة الأسية، والإشارة الرمزية أو اللفظية. وتُهمَل المسافات المحيطة بالنص، لكن يجب أن يكون النص كله عددًا صالحًا.
إذا لم يحتوِ النص على فاصل عشري أو أس، تُعيد الدالة عددًا صحيحًا دقيقًا. أما وجود فاصل عشري أو أس فيجعل النتيجة عشرية، حتى إذا كانت قيمتها الرياضية عددًا صحيحًا.
- يعمل على
- نص
- يعيد
- عدد صحيح أو عشري
ملاحظات
- لا تقبل الدالة اختصارات المضيف مثل النص الفارغ أو الأعداد الست عشرية.
يرفع خطأ عندما
- لا يمثل النص عددًا صالحًا كاملًا.
- ينتج التحويل العشري قيمة غير منتهية.
- يتجاوز العدد الصحيح الحدّ المسموح به، أو تتجاوز كلفة إنشائه حدّ التنفيذ.
مثال
نوع النتيجة جزء من التحويل
اجعل الأول يساوي "30".إلى عدد()اجعل الثاني يساوي "30.0".إلى عدد()اجعل الثالث يساوي "٣٠٫٥".إلى عدد()اطبع الأول.إلى نص()اطبع الثاني.إلى نص()اطبع الثالث.إلى نص()
3030.030.5
تظهر .إلى نص() الفرق الملحوظ بين الصحيح 30 والعشري 30.0. ويُفهَم الفاصل العشري العربي في المثال الثالث بالطريقة نفسها.
.عدد؟()
يتحقّق من إمكان تحويل النص كله إلى عدد.
يستخدم الاختبار القواعد نفسها التي تستخدمها .إلى عدد(): المسافات المحيطة، وأنواع الأرقام، والفاصل العشري، والصيغة الأسية، وأن تكون النتيجة العشرية محدودة وليست لا نهائية.
يُعيد خطأ عندما يكون النص غير صالح، من دون رفع خطأ تحويل؛ لذلك يمكنك استخدامه قبل التحويل لتجنّب الخطأ.
- يعمل على
- نص
- يعيد
- قيمة منطقية
ملاحظات
- قد يظل النص الضخم جدًا يرفع خطأً متعلقًا بحدود التنفيذ، حتى إذا كانت صيغته العددية صحيحة.
يرفع خطأ عندما
- يتجاوز إنشاء عدد صحيح صالح حد التنفيذ.
مثال
حراسة التحويل
اطبع "١٢٫٥".عدد؟()اطبع "12px".عدد؟()
صحيحخطأ
الأول نص عددي كامل، أما الثاني فيحتوي على أحرف بعد العدد، فلا يطابق قواعد التحويل.
.إلى قيمة منطقية()
يحوّل النص صحيح أو خطأ أو خاطئ إلى قيمة منطقية.
تُحذف مسافات التحويل المحيطة بالنص أولًا. بعد ذلك تعيد صحيح القيمة الصادقة، بينما تعيد الصيغتان خطأ وخاطئ القيمة الكاذبة.
لا يقبل التحويل كلمات إضافية مثل نعم ولا، ولا يحوّل الأعداد إلى قيم منطقية.
- يعمل على
- نص
- يعيد
- قيمة منطقية
يرفع خطأ عندما
- لا يطابق النص إحدى الصيغ المنطقية الثلاث المقبولة.
مثال
الصيغ المقبولة والمسافات المحيطة
اطبع " صحيح ".إلى قيمة منطقية()اطبع "خاطئ".إلى قيمة منطقية()
صحيحخطأ
تُهمل المسافتان حول صحيح، وتُعرض القيمة الناتجة عن خاطئ بالصيغة القانونية خطأ.
.منطقي؟()
يختبر هل يمكن تحويل النص إلى قيمة منطقية.
يقبل الاختبار الصيغ نفسها التي تقبلها .إلى قيمة منطقية() بعد حذف المسافات المحيطة. ويُعيد خطأ للنصوص الأخرى من دون رفع خطأ تحويل.
- يعمل على
- نص
- يعيد
- قيمة منطقية
مثال
تمييز النص المنطقي
اطبع "خطأ".منطقي؟()اطبع "نعم".منطقي؟()
صحيحخطأ
خطأ صيغة تحويل معتمدة، بينما نعم ليست مرادفًا منطقيًا في زيد.
.إلى نص()
يُعيد التمثيل النصي المعتمد للقيمة البسيطة، مع الحفاظ على نوع العدد.
يعيد النص نفسه من غير تغيير. ويحوّل الصحيح والعشري والقيمة المنطقية والعدم إلى نصوصها القانونية كما تظهر في زيد.
يحافظ تحويل العدد العشري على ما يميّزه عن الصحيح، مثل اللاحقة .0 والصفر السالب. ولا تدعم النسخة 0.0.1 تحويل القوائم والقواميس والنطاقات إلى نص.
- يعمل على
- نص، عدد، قيمة منطقية، عدم
- يعيد
- نص
السلوك بحسب نوع القيمة
- نص
- يعيد القيمة النصية نفسها.
- عدد
- يعيد التمثيل القانوني ويحفظ نوع العشري.
- قيمة منطقية
- يعيد
صحيحأوخطأ. - عدم
- يعيد
عدم.
ملاحظات
- عرض مجموعة بـ
اطبعليس تحويلًا لها عبر.إلى نص().
يرفع خطأ عندما
- يُستدعى التحويل على قائمة أو قاموس أو نطاق؛ هذه الحالات مؤجلة في 0.0.1.
- يتجاوز النص الناتج الحدّ المسموح لطول النص أثناء التنفيذ.
مثال
النتائج نصوص فعلًا
اطبع [30.0.إلى نص()، صحيح.إلى نص()، عدم.إلى نص()]
["30.0"، "صحيح"، "عدم"]
وضع النتائج داخل قائمة يجعل علامات الاقتباس ظاهرة، ويبيّن أن 30.0 بقي تمثيلًا لعشري لا لصحيح.
.مطلق()
يعيد القيمة المطلقة للعدد مع الحفاظ على نوعه.
إذا كان العدد صحيحًا كانت النتيجة عددًا صحيحًا، وإذا كان عشريًا كانت النتيجة عددًا عشريًا. ولا تغيّر الدالة الأعداد غير السالبة، وتحول الصفر العشري السالب إلى 0.0 موجب.
انتبه إلى أولوية الاستدعاء: يجب وضع العدد المنفي بين قوسين، لأن ناقص 5.مطلق() يعني نفي نتيجة 5.مطلق().
- يعمل على
- عدد
- يعيد
- عدد من نوع المستقبل
يرفع خطأ عندما
- يتجاوز إنشاء القيمة الصحيحة الموجبة حد عمل التنفيذ.
مثال
الصحيح والصفر العشري السالب
اطبع (ناقص 5).مطلق()اطبع (ناقص 0.0).مطلق().إلى نص()
50.0
تنتج القيمة الأولى صحيحًا، وتظهر .إلى نص() أن الثانية بقيت عشرية بعد إزالة إشارة الصفر السالب.
.إلى أقرب عدد صحيح()
يقرّب العدد إلى أقرب قيمة صحيحة ويعيد عددًا صحيحًا دقيقًا.
يعيد المستقبل نفسه عندما يكون صحيحًا. أما العشري فيُقرّب إلى أقرب صحيح، وتُقرّب حالة المنتصف بعيدًا عن الصفر: 2.5 إلى 3 و-2.5 إلى -3.
النتيجة دائمًا من نوع العدد الصحيح، حتى عندما كان المستقبل عشريًا ذا قيمة صحيحة.
- يعمل على
- عدد
- يعيد
- عدد صحيح
يرفع خطأ عندما
- تتجاوز النتيجة أو كلفة إنشائها حد العدد الصحيح في التنفيذ.
مثال
منتصف المسافة يُقرّب بعيدًا عن الصفر
اطبع 2.5.إلى أقرب عدد صحيح()اطبع (ناقص 2.5).إلى أقرب عدد صحيح()
3-3
تُقرِّب الدالة القيمتين 2.5 وناقص 2.5 بعيدًا عن الصفر؛ لذلك تكون النتيجتان متناظرتين.
.صحيح؟()
يتحقّق مما إذا كان العدد بلا جزء كسري.
تُعيد الدالة صحيح لكل عدد صحيح، كما تُعيده للعدد العشري الذي ليس له جزء كسري، مثل 7.0، مع بقائه عشريًا من حيث النوع.
- يعمل على
- عدد
- يعيد
- قيمة منطقية
مثال
النوع والقيمة سؤالان مختلفان
اطبع 7.صحيح؟()اطبع 7.0.صحيح؟()اطبع 7.25.صحيح؟()
صحيحصحيحخطأ
7.0 عشري، لكنه صحيح القيمة؛ لذلك لا تستعمل هذه الدالة لتمييز النوعين.
.زوجي؟()
يتحقّق مما إذا كان العدد الذي ليس له جزء كسري يقبل القسمة على اثنين من دون باقٍ.
تعمل الدالة على الأعداد الصحيحة وعلى الأعداد العشرية التي ليس لها جزء كسري، مثل 12.0. ولا تُعرَّف الزوجية لعدد ذي جزء كسري.
- يعمل على
- عدد
- يعيد
- قيمة منطقية
يرفع خطأ عندما
- يكون المستقبل عشريًا ذا جزء كسري.
مثال
اختبار الزوجية
اطبع 12.زوجي؟()اطبع 13.زوجي؟()
صحيحخطأ
12 من مضاعفات اثنين، بينما يبقى واحد عند قسمة 13 على اثنين.
.فردي؟()
يتحقّق مما إذا كان العدد الذي ليس له جزء كسري لا يقبل القسمة على اثنين من دون باقٍ.
تعمل الدالة على الأعداد الصحيحة وعلى الأعداد العشرية التي ليس لها جزء كسري. وهي المقابل المنطقي لـ .زوجي؟() لكل قيمة صالحة لاختبار الزوجية.
- يعمل على
- عدد
- يعيد
- قيمة منطقية
يرفع خطأ عندما
- يكون المستقبل عشريًا ذا جزء كسري.
مثال
اختبار الفردية
اطبع 12.فردي؟()اطبع 13.فردي؟()
خطأصحيح
12 زوجي، و13 فردي؛ لذلك تعكس النتيجتان مثال .زوجي؟().
.مع(القيمة)
يُعيد نسخةً سطحية جديدة من القائمة، مع إضافة القيمة إلى نهايتها.
تُنشئ الدالة قائمةً جديدة وتنقل إليها العناصر الحالية كما هي، ثم تضيف المعامل عنصرًا أخيرًا. ولا تتغيّر القائمة الأصلية.
النسخة سطحية؛ فإذا احتوت القائمة على قائمة أو قاموس متداخل، يبقى العنصر الداخلي نفسه مشتركًا بين الأصل والنسخة.
- يعمل على
- قائمة
- المعامل
القيمة— القيمة التي توضع عنصرًا جديدًا في نهاية النسخة.- يعيد
- قائمة جديدة
يرفع خطأ عندما
- يتجاوز إنشاء القائمة الجديدة ميزانية إنشاء المجموعات.
مثال
الأصل يبقى كما هو
اجعل الأصل يساوي [1، 2]اجعل الجديدة تساوي الأصل.مع(3)اطبع الأصلاطبع الجديدة
[1، 2][1، 2، 3]
تعيد .مع() قيمة جديدة، ولذلك لم يظهر 3 في الأصل. استخدم .أضف!() عندما تريد تعديل القائمة نفسها.
.بدون(القيمة أو المفتاح)
يُعيد نسخةً سطحية من قائمة أو قاموس بعد حذف قيمة واحدة أو مفتاح واحد.
في القائمة يحذف أول عنصر مساوٍ للمعامل فقط. وفي القاموس يعامل المعامل بوصفه مفتاحًا نصيًا ويحذف مدخله مع الحفاظ على ترتيب المدخلات الباقية.
لا تغيّر الدالة القيمة الأصلية. وإذا لم توجد القيمة أو المفتاح، ترفع الدالة خطأً بدلًا من إعادة نسخة مطابقة قد تخفي خطأً في البرنامج.
- يعمل على
- قائمة، قاموس
- المعامل
القيمة أو المفتاح— القيمة المراد حذف أول مثيل مساوٍ لها، أو مفتاح القاموس النصي.- يعيد
- قائمة أو قاموس جديد
السلوك بحسب نوع القيمة
- قائمة
- يحذف أول عنصر مساوٍ ويترك التكرارات اللاحقة.
- قاموس
- يحذف المفتاح النصي ويحفظ ترتيب المدخلات الأخرى.
يرفع خطأ عندما
- لا يوجد عنصر مساوٍ في القائمة أو مفتاح مطابق في القاموس.
- يُمرر إلى القاموس مفتاح غير نصي.
- يتجاوز إنشاء النسخة ميزانية إنشاء المجموعات.
أمثلة
حذف أول عنصر من نسخة
اجعل الأصل يساوي ["أ"، "ب"، "أ"]اجعل الجديدة تساوي الأصل.بدون("أ")اطبع الأصلاطبع الجديدة
["أ"، "ب"، "أ"]["ب"، "أ"]
بقيت القائمة الأصلية، وحُذف أول "أ" فقط من النسخة.
حذف مفتاح من نسخة قاموس
اجعل المستخدم يساوي {الاسم: "زيد"، العمر: 1}اجعل المختصر يساوي المستخدم.بدون("العمر")اطبع المستخدماطبع المختصر
{"الاسم": "زيد"، "العمر": 1}{"الاسم": "زيد"}
بقي مدخل العمر في المستخدم، واختفى من القاموس الجديد وحده.
.أضف!(القيمة)
يضيف قيمة واحدة إلى نهاية القائمة ويعيد القائمة نفسها.
تُعدِّل الدالة القائمة الأصلية بدلًا من إنشاء قائمة جديدة، ثم تُعيد القائمة نفسها. ولذلك يمكنك استدعاء دالة تعديل أخرى مباشرةً على النتيجة.
- يعمل على
- قائمة
- المعامل
القيمة— القيمة التي تضاف عنصرًا واحدًا في نهاية القائمة.- يعيد
- المستقبل نفسه بعد تعديله
يرفع خطأ عندما
- تتجاوز الإضافة ميزانية إنشاء عناصر المجموعات.
مثال
التعديل والربط
اجعل الأعداد تساوي [1، 2]الأعداد.أضف!(3).أضف!(4)اطبع الأعداد
[1، 2، 3، 4]
نجح الاستدعاء الثاني لأن الأول أعاد القائمة نفسها بعد إضافة 3.
.احذف!(القيمة أو المفتاح)
يحذف هدفًا واحدًا من قائمة أو قاموس ويعيد المستقبل نفسه.
في القائمة تحذف الدالة أول عنصر مساوٍ للمعامل. وفي القاموس تحذف المدخل ذي المفتاح النصي المحدد.
يحدث التغيير على القيمة الأصلية نفسها، وتُعاد القيمة بعد تعديلها لتمكين الاستدعاءات المتتابعة. ويُسمح بحذف مفتاح من القاموس أثناء التكرار المباشر عليه، بخلاف إضافة مفتاح جديد.
- يعمل على
- قائمة، قاموس
- المعامل
القيمة أو المفتاح— القيمة المراد حذف أول مثيل لها، أو مفتاح القاموس النصي.- يعيد
- المستقبل نفسه بعد تعديله
السلوك بحسب نوع القيمة
- قائمة
- يحذف أول عنصر مساوٍ ويترك ما بعده.
- قاموس
- يحذف المفتاح النصي ومدخله من القاموس نفسه.
يرفع خطأ عندما
- لا يوجد عنصر مساوٍ في القائمة أو مفتاح مطابق في القاموس.
- يُمرر إلى القاموس مفتاح غير نصي.
أمثلة
حذف أول تكرار من قائمة
اجعل القيم تساوي [1، 2، 1]القيم.احذف!(1)اطبع القيم
[2، 1]
تغيرت القيم نفسها، وبقي التكرار الثاني للعدد 1.
حذف مدخل من قاموس
اجعل المستخدم يساوي {الاسم: "زيد"، العمر: 1}المستخدم.احذف!("العمر")اطبع المستخدم
{"الاسم": "زيد"}
اختفى المدخل من القاموس الأصلي، لا من نسخة منفصلة.
.عشوائي()
.عشوائية()يعيد عنصرًا من موضع عشوائي في قائمة أو نطاق.
تختار الدالة فهرسًا عشوائيًا صالحًا داخل القائمة أو النطاق، ثم تُعيد القيمة الموجودة في ذلك الموضع. ويعتمد التوزيع على مولّد الأعداد العشوائية في بيئة التشغيل.
لا تُنسخ القيمة المختارة. فإذا كانت قائمةً أو قاموسًا متداخلًا، فإن تعديلها يغيّر العنصر نفسه داخل القائمة الأصلية. وعشوائية اسم بديل للدالة نفسها.
- يعمل على
- قائمة، نطاق
- يعيد
- العنصر المختار
السلوك بحسب نوع القيمة
- قائمة
- يختار أحد مواضع القائمة، وتبقى القيم المتكررة مواضع مستقلة.
- نطاق
- يختار موضعًا من قيم النطاق من غير توسيعه كاملًا.
ملاحظات
- يجوز حذف القوسين عن الصيغتين لأنهما لا تستقبلان معاملات.
يرفع خطأ عندما
- تكون القائمة أو النطاق فارغًا.
- يكون النطاق أكبر من الحد الذي تستطيع الدالة اختيار فهرس عشوائي آمن منه.
مثال
اختبار الضمان بدل توقع قيمة بعينها
اجعل الألوان تساوي ["أحمر"، "أخضر"، "أزرق"]اجعل اللون يساوي الألوان.عشوائية()اجعل العدد يساوي (من 1 إلى 5).عشوائي()اطبع الألوان.يحتوي؟(اللون)اطبع (من 1 إلى 5).يحتوي؟(العدد)
صحيحصحيح
لا يفترض المثال قيمةً عشوائية بعينها، بل يتحقق من أن كل قيمة مختارة تنتمي إلى المصدر الذي اختيرت منه.