any
و every
في Dart مع أمثلة 🚀
في Dart، يتم استخدام any
و every
لفحص العناصر داخل مجموعة (List
، Set
، أو أي Iterable
) بناءً على شرط معين.
🔹 any()
🔹 تُستخدم any()
للتحقق مما إذا كان هناك على الأقل عنصر واحد يحقق الشرط المحدد.
🔹 تُعيد true
إذا تحقق الشرط لأي عنصر، وإلا تُعيد false
.
📌 المثال الأول: التحقق مما إذا كان هناك عدد زوجي
dartنسختحريرvoid main() {
List<int> numbers = [1, 3, 5, 7, 8];
bool hasEven = numbers.any((num) => num.isEven);
print(hasEven); // Output: true (لأن 8 عدد زوجي)
}
🔹 التفسير:
- يوجد على الأقل عدد واحد زوجي (
8
) في القائمة، لذلك تُعيدtrue
.
📌 المثال الثاني: التحقق مما إذا كانت القائمة تحتوي على قيمة أكبر من 10
dartنسختحريرvoid main() {
List<int> numbers = [2, 4, 6, 8, 10];
bool containsGreaterThan10 = numbers.any((num) => num > 10);
print(containsGreaterThan10); // Output: false
}
🔹 التفسير:
- لا يوجد أي عدد أكبر من
10
، لذا تُعيدfalse
.
🔹 every()
🔹 تُستخدم every()
للتحقق مما إذا كانت كل العناصر تحقق الشرط المحدد.
🔹 تُعيد true
فقط إذا تحقق الشرط لجميع العناصر، وإلا تُعيد false
.
📌 المثال الأول: التحقق مما إذا كانت جميع الأعداد زوجية
dartنسختحريرvoid main() {
List<int> numbers = [2, 4, 6, 8, 10];
bool allEven = numbers.every((num) => num.isEven);
print(allEven); // Output: true
}
🔹 التفسير:
- جميع الأعداد في القائمة زوجية (
2, 4, 6, 8, 10
)، لذا تُعيدtrue
.
📌 المثال الثاني: التحقق مما إذا كانت جميع الأسماء تحتوي على الحرف “أ”
dartنسختحريرvoid main() {
List<String> names = ["أحمد", "أمل", "آدم"];
bool allContainAlef = names.every((name) => name.contains("أ"));
print(allContainAlef); // Output: true
}
🔹 التفسير:
- جميع الأسماء تحتوي على حرف “أ”، لذا تُعيد
true
.
📌 المثال الثالث: التحقق مما إذا كانت كل القيم أكبر من 5
dartنسختحريرvoid main() {
List<int> numbers = [6, 7, 8, 9, 10];
bool allGreaterThan5 = numbers.every((num) => num > 5);
print(allGreaterThan5); // Output: true
}
🔹 التفسير:
- جميع القيم أكبر من
5
، لذا تُعيدtrue
.
💡 الفرق بين any
و every
الدالة | ترجع true إذا… | ترجع false إذا… |
---|---|---|
any() | يوجد عنصر واحد على الأقل يحقق الشرط. | لا يوجد أي عنصر يحقق الشرط. |
every() | جميع العناصر تحقق الشرط. | يوجد عنصر واحد على الأقل لا يحقق الشرط. |
📌 مثال يوضح الفرق بين any
و every
dartنسختحريرvoid main() {
List<int> numbers = [10, 20, 30, 40];
bool hasSmallNumber = numbers.any((num) => num < 25);
bool allSmallNumbers = numbers.every((num) => num < 25);
print(hasSmallNumber); // Output: true (لأن 10 و 20 أقل من 25)
print(allSmallNumbers); // Output: false (لأن 30 و 40 ليسا أقل من 25)
}
🔹 التفسير:
any()
تُعيدtrue
لأن هناك عناصر (10
و20
) أصغر من25
.every()
تُعيدfalse
لأن بعض العناصر (30
و40
) ليست أصغر من25
.
🎯 متى تستخدم كل منهما؟
✅ استخدم any()
عندما تريد التحقق مما إذا كان هناك عنصر واحد على الأقل يحقق الشرط.
✅ استخدم every()
عندما تريد التأكد من أن جميع العناصر تحقق الشرط.