"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > التحقق من العناصر في الخيارات في Effect-TS: دليل عملي

التحقق من العناصر في الخيارات في Effect-TS: دليل عملي

تم النشر بتاريخ 2024-11-08
تصفح:741

Checking Elements in Options in Effect-TS: A Practical Guide

يوفر Effect-TS طرقًا للتحقق مما إذا كان الخيار يحتوي على قيمة محددة. تسمح لك هذه الوظائف بتحديد وجود قيمة ضمن الخيار، إما باستخدام دالة التكافؤ المخصصة أو التكافؤ الافتراضي. في هذه المقالة، سنستكشف وظيفتين رئيسيتين للتحقق من العناصر في الخيارات: O.containsWith وO.contains.

المثال 1: التحقق من العناصر ذات التكافؤ المخصص باستخدام O.containsWith

مفهوم

تتحقق الدالة O.containsWith مما إذا كان الخيار يحتوي على قيمة محددة باستخدام دالة تكافؤ مخصصة. ترجع هذه الدالة صحيحًا إذا كان الخيار يحتوي على القيمة وفقًا للتكافؤ المقدم؛ وإلا فإنها ترجع كاذبة.

شفرة

function elements_ex01() {
  const numberEquivalence = Eq.number;

  const some1 = O.some(1); // Create an Option containing the value 1
  const none = O.none(); // Create an Option representing no value

  console.log(pipe(some1, O.containsWith(numberEquivalence)(1))); // Output: true (Option contains 1)
  console.log(pipe(some1, O.containsWith(numberEquivalence)(2))); // Output: false (Option does not contain 2)
  console.log(pipe(none, O.containsWith(numberEquivalence)(1))); // Output: false (Option is None)
}

توضيح

  • pipe(some1, O.containsWith(numberEquivalence)(1)): يحتوي الخيار على القيمة 1، وتؤكد دالة التكافؤ المخصصة ذلك، مما يؤدي إلى القيمة true.
  • pipe(some1, O.containsWith(numberEquivalence)(2)): الخيار لا يحتوي على القيمة 2، لذا فإن النتيجة خاطئة.
  • pipe(none, O.containsWith(numberEquivalence)(1)): الخيار بلا، وبالتالي فإن النتيجة خاطئة بغض النظر عن القيمة المحددة.

هذه الوظيفة مفيدة عندما تحتاج إلى التحقق مما إذا كان الخيار يحتوي على قيمة محددة بمنطق مقارنة مخصص، مما يسمح بمزيد من المرونة في تحديد التكافؤ.

المثال 2: التحقق من العناصر ذات التكافؤ الافتراضي باستخدام O.contains

مفهوم

تقوم الدالة O.contains بالتحقق مما إذا كان الخيار يحتوي على قيمة محددة باستخدام التكافؤ الافتراضي. يُرجع صحيحًا إذا كان الخيار يحتوي على القيمة؛ وإلا فإنها ترجع كاذبة. تكون هذه الوظيفة أسهل في الاستخدام عندما لا تحتاج إلى منطق مقارنة مخصص.

شفرة

function elements_ex02() {
  const some1 = O.some(1); // Create an Option containing the value 1
  const none = O.none(); // Create an Option representing no value

  console.log(pipe(some1, O.contains(1))); // Output: true (Option contains 1)
  console.log(pipe(some1, O.contains(2))); // Output: false (Option does not contain 2)
  console.log(pipe(none, O.contains(1))); // Output: false (Option is None)
}

توضيح

  • pipe(some1, O.contains(1)): يحتوي الخيار على القيمة 1، وبالتالي تكون النتيجة صحيحة.
  • pipe(some1, O.contains(2)): الخيار لا يحتوي على القيمة 2، وبالتالي فإن النتيجة خاطئة.
  • pipe(none, O.contains(1)): الخيار هو لا شيء، وبالتالي فإن النتيجة خاطئة بغض النظر عن القيمة المحددة.

هذه الوظيفة مفيدة للتحقق بسرعة مما إذا كان الخيار يحتوي على قيمة محددة عندما يكون التكافؤ الافتراضي كافيًا، مما يجعله واضحًا وسهل الاستخدام.

خاتمة

يوفر Effect-TS طرقًا فعالة للتحقق مما إذا كان الخيار يحتوي على قيمة محددة. باستخدام O.containsWith، يمكنك استخدام وظائف التكافؤ المخصصة لتحديد كيفية إجراء المقارنة، مما يوفر المرونة للسيناريوهات المعقدة. وفي الوقت نفسه، يوفر O.contains نهجًا أبسط، حيث يستفيد من التكافؤ الافتراضي لإجراء عمليات فحص مباشرة. تسمح لك هذه الوظائف بالتعامل مع الخيارات بشكل فعال، مما يضمن أنه يمكنك التحقق من وجود القيم بطريقة بديهية ومنضبطة.

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/almaclaine/checking-elements-in-options-in-effect-ts-a-practical-guide-3o6b?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ Study_golang@163 .com لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3