هل سبق لك أن واجهت سيناريو في البرمجة حيث تحتاج إلى التحقق مما إذا كانت جميع العناصر في القائمة أو الدفق تلبي شرطًا معينًا؟ هذا نمط شائع في البرمجة، ولكن ماذا يحدث عندما تكون القائمة فارغة؟ وهنا يأتي دور مفهوم الحقيقة الفارغة.
قبل أن نتعمق في التعريف الرياضي، دعونا نبدأ بمثال عملي في الكود لفهم ماهية الحقيقة الفارغة.
تخيل أنه تم تكليفك بالتحقق مما إذا كانت جميع العناصر الموجودة في القائمة تستوفي شرطًا معينًا. إذا فعلوا ذلك، يمكنك تنفيذ إجراء محدد. على سبيل المثال، خذ بعين الاعتبار مقتطف كود Java التالي:
public static void main(String[] args) { // Example - 1, expected to do something if (allNumbersAreOdd(Arrays.asList(1, 3, 5))) { System.out.println("do something 1"); } // Example - 2, NOT expected to do anything because NOT all numbers are odd if (allNumbersAreOdd(Arrays.asList(1, 2, 3, 4, 5))) { System.out.println("do something 2"); } // Example - 3, NOT expected to do anything because list is empty so there is no odd number. /* This is the surprising element which is known as "Vacuous truth" and it will print "do something". * It is applicable to both allMatch(Predicate super T> predicate) * and noneMatch(Predicate super T> predicate) */ if (allNumbersAreOdd(Collections.emptyList())) { System.out.println("do something 3"); } } private static boolean allNumbersAreOdd(@Nonnull Listnumbers) { return numbers.stream().allMatch(integer -> integer % 2 != 0); }
المثال الثالث مثير للاهتمام بشكل خاص. لماذا تُرجع "جميع الأرقام فردية" عندما تكون القائمة فارغة؟
هذا السلوك هو مثال للحقيقة الفارغة. في المنطق الرياضي، العبارة التي تؤكد شيئًا ما حول جميع عناصر المجموعة الفارغة تعتبر صحيحة. وذلك لأنه لا توجد عناصر في المجموعة تتعارض مع العبارة.
بحسب ويكيبيديا:
"الحقيقة الفارغة هي عبارة تؤكد أن جميع أعضاء المجموعة الفارغة لديهم خاصية معينة. تعتبر مثل هذه العبارات صحيحة لأنه لا توجد أمثلة مضادة في المجموعة الفارغة."
بعبارة أخرى، عندما نقول، "جميع عناصر المجموعة S لها الخاصية P،" وإذا كانت S فارغة، فإن هذا البيان صحيح بشكل فارغ لأنه لا يوجد عنصر واحد في S يمكن أن ينتهك الخاصية P
يعد فهم الحقيقة الفارغة أمرًا مهمًا في البرمجة لأنه يمكن أن يؤثر على منطق ونتائج التعليمات البرمجية الخاصة بك، خاصة عند التعامل مع المجموعات أو التدفقات أو أي سيناريو حيث من المحتمل أن تكون مدخلاتك فارغة.
خاتمة
في المرة القادمة التي تكتب فيها دالة تتحقق مما إذا كانت جميع العناصر الموجودة في القائمة أو الدفق تستوفي شرطًا ما، تذكر مفهوم الحقيقة الفارغة. إنه يشرح لماذا قد تتصرف التعليمات البرمجية الخاصة بك بطريقة غير متوقعة عندما يكون الإدخال فارغًا. إن إدراك ذلك يمكن أن يساعدك على كتابة برامج أكثر قوة ويمكن التنبؤ بها.
إذا كان لديك متطلبات قائمة/دفق فارغ لا يجب تقييمه على أنه صحيح، فعليك التفكير في فحص إضافي على القائمة/الدفق.
private static boolean allNumbersAreOdd(@Nonnull Listnumbers) { return !numbers.isEmpty() && numbers.stream().allMatch(integer -> integer % 2 != 0); }
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3