مرحبًا بعودتك.
دعنا نتحدث عن عامل التصفية.
الآن ، بناءً على الاسم ، يجب أن تخمن ما يفعله.
إنه يقوم بتصفية الأشياء لنا.
إذن باستخدام الخريطة ، حصلنا دائمًا على نفس العدد من العناصر ، أليس كذلك؟
لدينا ثلاثة عناصر وحصلنا على ثلاثة عناصر.
لقد قمنا للتو بتعيين كل عنصر.
باستخدام الفلتر ، يمكننا أحيانًا الحصول على أقل مما قدمناه.
نحن بصدد تصفية بعض نتائجنا.
فلننشئ دالة جديدة بدلاً من ضربها في اثنين.
أريد إنشاء وظيفة.
وهذه الوظيفة ، ماذا سنفعل بالعناصر؟
دعنا نقول ما إذا تم التحقق من العناصر إذا كانت فردية.
لذلك سنقول ، هل هذه الأرقام فردية وتعيد فقط الأرقام الفردية.
لذا تحقق.
سوف يستلم Odd عنصرًا.
وسيتم العمل على هذا العنصر.
ومرة أخرى ، علينا إعادة شيء ما.
ماذا سنعود؟
حسنًا ، ستحاول وظيفة التصفية الحصول على قيمة صحيحة وخاطئة أو قيمة منطقية ، سواء كان
يجب تصفيتها أم لا.
لذا إذا أردنا التحقق مما إذا كان الرقم فرديًا ، حسنًا ، يمكننا أن نقول البند modulo 2 لأن المقياس الثاني سيقسم
الرقم على اثنين.
وإذا كانت تساوي صفرًا ، فهي زوجية.
الصحيح.
لذا يمكنني القول إنها لا تساوي صفرًا.
لذا إذا كان الباقي لا يساوي صفرًا ، فسيكون فرديًا.
ونحن ببساطة نعيد هذا.
مرة أخرى ، سيتم تقييم هذا في شكل تعبير تنمر وبناءً على تعبير التنمر ، سيقول الفلتر
، إذا كان هذا صحيحًا ، فسأحتفظ به في القائمة.
إذا لم يكن كذلك ، فسأقوم بإزالته أو عدم إضافته إلى القائمة الجديدة.
لذلك دعونا نتحقق من ذلك بدلاً من الخريطة ، دعنا نقوم بالتصفية وهنا سنقوم بالتحقق.
الفردية.
أو.
أتعلم؟
أنا لا أحب هذا الاسم.
دعنا نفعل.
غريب فقط.
مثل هذا.
إذا قمت بتشغيل هذا.
انظر إلى ذلك.
لقد قمت بترشيح الأنبوب وإزالته لأنه رقم زوجي.
ثانية.
لاحظ هنا كيف أنني لا أستدعي الوظيفة لأن المرشح يقبل وظيفة أو ما نسميه توقيع
الوظيفة.
مرحبًا ، أخبرني فقط أين يمكنني العثور على مساحة الذاكرة التي يجب أن أذهب إليها من أجل الإجراء الذي يجب اتخاذه.
وسيقول ، مرحبًا ، أعطني البيانات وسأذهب وأقوم بتشغيل هذه الوظيفة على كل عنصر.
لذا ، عندما ننتقل إلى واحد ، سنقوم بتشغيل هذه الدالة بواحدها على أنها الوسيطة.
واحد مقسوم على اثنين.
حسنًا ، هذا بالتأكيد لا يعطينا الباقي من الصفر.
لذلك هذا سوف يعود.
حقيقي.
وهذا يعني أنني سأضيفها إلى القائمة الجديدة التي أنشأناها عندما نصل إلى الرقمين
، لأن هذا سيعود إلى القيمة false.
لن تضيفه إلى القائمة.
مرة أخرى ، لنفترض أن لدينا قائمة بالمستخدمين.
في هذه الحالة ، قد نرغب في إجراء التصفية استنادًا إلى المستخدمين ، بدءًا من الاسم أ.
يمكننا استخدام وظيفة التصفية لتصفية جميع أسماء المستخدمين.
ولديك فقط قائمة جديدة بأسماء المستخدمين بأحرف ، تبدأ بحرف a.
وظيفة أخرى مفيدة للغاية.
وكما ترى ، أبقينا كل شيء نقيًا.
يقوم بإنشاء قائمة جديدة لنا.
لا يعدل القائمة الأصلية.
لذلك نحن نضع هذا النموذج الوظيفي في الاعتبار.
ومرة أخرى ، يكمن جمال الخريطة والمرشح في مدى بساطة الوظائف.
كل شيء جميل وبسيط ، واعلم أنه يمكن أن يصبح الأمر أكثر تعقيدًا بعض الشيء.
لكن كل ما نحتاج إلى معرفته هو ، مرحبًا ، ماذا أفعل بالعنصر وماذا يجب أن أعود؟
هذا هو الشيء الوحيد الذي يقلقهم.
بدلاً من امتلاك هذه الوظائف الضخمة الهائلة التي تحاول القيام بكل شيء.
حسنا.
دعنا نتحدث عن zip بعد ذلك.