any و every

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() عندما تريد التأكد من أن جميع العناصر تحقق الشرط.