‫أهلا ومرحبا.
‫في هذه المحاضرة ، سوف نتعلم كيف يمكننا إزالة دبابيس التنفيذ من وظائفنا الخاصة
‫وكيف ومتى يكون القيام بذلك فكرة جيدة.
‫دعنا نتعمق.
‫لذلك من الغريب بعض الشيء أن تحتوي وظيفة الذخيرة لدينا الآن على دبابيس تنفيذ عندما لم نكن بحاجة إلى
‫ذلك في السابق وهذا نوع من جعل الكود الخاص بنا أسوأ قليلاً.
‫إذن ما هذا؟
‫لماذا حدث ذلك ولماذا تتطلب بعض العقد الوظيفية دبابيس تنفيذ وأخرى لا تتطلبها؟
‫حسنًا ، كل هذا يعود إلى شيء يسمى التأثير الجانبي.
‫إذن ما هو التأثير الجانبي؟
‫في الأساس ، يكون التأثير الجانبي عندما يكون للوظيفة نوع من التأثير الملحوظ بعد تشغيلها.
‫الآن ماذا أعني بهذا؟
‫دعنا نلقي نظرة على بعض الأمثلة للوظائف ذات الآثار الجانبية حتى تتمكن من فهم المطبوعات والطباعة
‫والسلسلة.
‫بعد تشغيل سلسلة الطباعة.
‫من الواضح تمامًا أن شيئًا ما قد حدث لأنه يوجد الآن سلسلة على شاشتك.
‫يمكنك أن ترى أن هناك دفعة تضيف سلسلة من الواضح أن لها تأثيرًا يمكن ملاحظته لأن
‫الشيء الذي أضفت الدافع إليه فجأة ينطلق بعيدًا.
‫تعيين الذخيرة له تأثير يمكن ملاحظته لأنه بعد تعيين الذخيرة ، تغيرت القيمة في هذا المتغير.
‫الآن في هذه المرحلة ، قد تتساءل ، حسنًا ، من المؤكد أن كل وظيفة لها تأثير يمكن ملاحظته.
‫وإلا ما هو الهدف منه؟
‫كذلك ليس تماما.
‫هناك أشياء مثل وظائف خالصة.
‫ما هي الوظيفة الصرفة؟
‫إنها في الأساس وظيفة بدون آثار جانبية.
‫ومع ذلك ، فإنه يحتوي على قيم إرجاع.
‫إذن هناك قيم تخرج من هذه الوظيفة.
‫وهذا هو الغرض الكامل من الدالة وهو حساب هذه القيم وإعطائنا.
‫لذا مرة أخرى ، دعنا نلقي نظرة على بعض الأمثلة لأن هذا سيجعلها أكثر وضوحًا.
‫احصل على الذخيرة.
‫هذه وظيفة خالصة.
‫ليس له أي آثار جانبية لأنه يمكنك الحصول على الذخيرة عدة مرات كما تريد.
‫وما لم تفعل شيئًا بالقيمة التي حصلت عليها منه ، برنامجك ، فلن تكون
‫لعبتك مختلفة.
‫يمكنك الاستمرار في الحصول على الذخيرة طوال الوقت ، طوال الوقت خلال اللعبة ولن يكون هناك
‫شيء مختلف يمكن ملاحظته في لعبتك.
‫احصل على متجه نشط للأمام.
‫هذا آخر حيث يمكنك الحصول عليه عدة مرات كما تريد.
‫لن يغير أي شيء حتى تفعل شيئًا بالقيمة التي تم إرجاعها وكل هذه الوظائف
‫الرياضية مثل الضرب ناقصًا أكبر.
‫كل هذه العقد ليس لها تأثير على مشروعك حتى يتم استخدام نتائجها لغرض أكبر.
‫لذلك تسمى هذه الوظائف الصرفة ، وربما يمكنك أن ترى أن هذه هي بالضبط العقد التي لم
‫يكن بها أي دبابيس تنفيذ لأنها لا تحتاج إليها.
‫لا يهم عندما أركض للحصول على الذخيرة أو ما إذا كنت أجريها 50 مرة أو مرة واحدة ، فلن يكون الأمر
‫مهمًا لأنه ليس له أي آثار جانبية يمكن ملاحظتها.
‫إذن كيف يمكننا أن نشير إلى المخطط أن الوظيفة نقية؟
‫حسنًا ، دعنا نلقي نظرة على وظيفة الاختبار الخاصة بي هنا.
‫لذلك سأقوم بتحديده في الرسم البياني للحدث أو في جزء المخطط الخاص بي.
‫ويمكنك أن ترى أنه في جزء التفاصيل يوجد مربع اختيار يسمى خالص.
‫لذلك إذا قمت بتحديد مربع الاختيار هذا ، فلاحظ أن دبابيس التنفيذ قد اختفت للتو.
‫وكل ما لدينا الآن هو مدخلات ومخرجات هذه الدالة.
‫الآن سيتم تشغيل هذه الوظيفة كلما احتجنا إلى الإخراج.
‫لذلك إذا قمت بتوصيل هذا الإخراج بسلسلة طباعة ، فسيتم تشغيل هذه الوظيفة قبل سلسلة الطباعة
‫بحيث يكون لها النتيجة في الوقت المناسب لتنفيذ سلسلة الطباعة.
‫يمكننا أن نفعل الشيء نفسه مع أي وظيفة حيث لا توجد آثار جانبية ، حيث لا
‫توجد آثار ملحوظة مثل وظيفة الذخيرة لدينا.
‫لذلك أود أن أتحداك لجعل الذخيرة في وظيفة خالصة.
‫لذا حدده وقم بتعيين مربع الاختيار هذا لجعله نقيًا.
‫وماذا يحدث لتدفق التنفيذ الآن.
‫ما تم توصيله حاليًا من خلال الوظيفة.
‫أين يذهب؟
‫أوقف الفيديو واذهب.
‫تمام.
‫مرحبًا بعودتك.
‫لذلك دعونا نختار لديه ذخيرة.
‫سوف نتحقق من خانة الاختيار الخالصة وستلاحظ على الفور أن دبابيس التنفيذ تختفي وأن تدفق
‫التنفيذ الذي كان يتدفق سابقًا به ذخيرة ينتقل الآن مباشرة إلى بيان الفرع الخاص
‫بنا ، وهو بالضبط ما نريده الآن به ذخيرة ستذهب فقط يتم تشغيلها بمجرد تشغيل بيان الفرع للحصول
‫على القيمة المعادة.
‫الآن كلمة تحذير استخدم مربع الاختيار هذا فقط عندما تكون متأكدًا من أن الوظيفة ليس لها آثار جانبية.
‫الحالات الشائعة وحالات الاستخدام لهذا هي عندما تحاول وظيفتك ببساطة حساب قيمة مثل
‫الذخيرة.
‫وهذا هو السبب في أن هذه الوظيفة لا تتبع اصطلاح تسمية الفعل لأنها لا تفعل شيئًا
‫، أو تحصل على شيء ما أو تجيب على سؤال.
‫في هذه الحالة ، السؤال له ذخيرة.
‫وفي الواقع ، يمكننا حتى وضع علامة استفهام صغيرة في وظيفتنا ، تسمية شيء يمكنك
‫القيام به في Blueprint لا يمكنك القيام به في C ++ ، مما يسمح لنا برؤية ، نعم ، هذه الوظيفة تجيب على
‫سؤال.
‫إنه لا يحاول أن يفعل شيئًا.
‫غالبًا ما يكون التمييز بين الدوال البحتة وغير الصافية هو ما إذا كانت تتناسب مع الفعل أو
‫ما إذا كانت تتناسب مع سؤال.
‫للمراجعة ، دعونا نلقي نظرة على مسرد المصطلحات الخاص بنا.
‫التأثير الجانبي هو تأثير يمكن ملاحظته لوظيفة رأيناها ورأينا أمثلة على تلك الوظائف.
‫والوظيفة الصرفة هي وظيفة ليس لها آثار جانبية ، مثل الحصول على وظائف أو وظائف الإجابة
‫على الأسئلة.
‫هذا كل شيء في هذه المحاضرة.
‫سأراك في المرحلة التالية.