any و all
جزء من قسم المنطق وتدفّق التنفيذ في رحلة GDScript على Coddy. الدرس 63 من 78.
يطرح any() وall() سؤالًا إجابته نعم أو لا حول مصفوفة كاملة. ويأخذ كلٌّ منهما دالة تُرجع true أو false لعنصر واحد:
- تُرجع
any()القيمةtrueإذا أعادت الدالة القيمةtrueلعنصر واحد على الأقل. - تُرجع
all()القيمةtrueإذا أعادت الدالة القيمةtrueلكل عنصر.
var enemy_hp = [30, 0, 12]
print(enemy_hp.any(func(hp): return hp == 0))
print(enemy_hp.all(func(hp): return hp > 0))true
falseلدى أحد الأعداء 0 من نقاط الصحة، لذا تكون any() true، والعدو نفسه يجعل all() false.
كلاهما يتوقف فور معرفة الإجابة: تتوقف any() عند أول true، وتتوقف all() عند أول false. وهما يعملان أيضًا مع الدوال المسماة، مثل numbers.all(is_even).
في المصفوفة الفارغة، تُرجع any() القيمة false، لأنه لا يوجد أي عنصر يحقق الشرط، وتُرجع all() القيمة true، لأنه لا يوجد أي عنصر لا يحقق الشرط.
استخدمها في شرط بدلًا من حلقة مع متغير راية:
var inventory = ["sword", "key", "rope"]
if inventory.any(func(item): return item == "key"):
print("The door opens")التحدي
سهليقرأ البرنامج سطرًا واحدًا من الدرجات مفصولة بفواصل ويخزنها في المصفوفة numbers. هذا الجزء مكتوب بالفعل.
اطبع سطرين:
Any perfect:متبوعًا بـtrueإذا كانت درجة واحدة على الأقل تساوي100، وإلاfalseAll passed:متبوعًا بـtrueإذا كانت كل الدرجات50أو أكثر، وإلاfalse
استخدم any() للسطر الأول وall() للسطر الثاني. بالنسبة إلى الإدخال 100,75,40، يكون الناتج:
Any perfect: true
All passed: falseجرّب بنفسك
extends Node
func _ready():
var numbers := []
for part in OS.read_string_from_stdin().split(","):
numbers.append(int(part))
# اطبع السطرين باستخدام any() وall()
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفّق التنفيذ
1السلاسل النصية بالتفصيل
أساليب السلاسل النصيةالبحث داخل السلاسل النصيةالاستبدال وإزالة المسافات الطرفيةالتقسيم والدمجمراجعة - التحقق من اسم المستخدم4القواميس، الجزء الثاني
القواميس المتداخلةمصفوفات من القواميسدمج القواميسنسخ القواميسمراجعة - عدّ التكرارات2اتخاذ القرارات المتقدم
المطابقة باستخدام المتغيراتشروط المطابقةأنماط المصفوفاتأنماط القواميسالتحقق من العضويةمراجعة - محلل الأوامر5تطبيق دفتر جهات الاتصال
عرض القائمةإضافة جهة اتصال8مدير سجلات الطلاب
نظرة عامة على المشروعإضافة طالب11الدوال عالية الرتبة
الطريقة mapالطريقة filterالطريقة reduceany و allمراجعة - مدقّق البريد الإلكترونيمراجعة - معالج الأعداد3المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادالمصفوفات المتعرجةأنماط شائعة للمصفوفات ثنائية الأبعادمراجعة - لوحة اللعبة6المجموعات باستخدام القواميس
ما هي المجموعة؟القاموس كمجموعةالإضافة والإزالةالاتحاد والتقاطعفرق المجموعاتمراجعة - إزالة العناصر المكررة9تجميع البيانات المتقدم
جمع القيمإيجاد الحد الأدنى والحد الأقصىالترتيب المخصصمراجعة - أداة ترتيب القواميستدرّب بنفسك: مترجم GDScript عبر الإنترنت