وفي درس اليوم، سنتعرف على استخدام لامدا Lambda. تسمح لنا تعبيرات لامدا بإجراء الحسابات مباشرة في سطور من الكود واستدعائهم، بإرسال معلمات مختلفة لهم باستخدام الواجهة. دعنا نلقي نظرة على بعض التعليمات البرمجية ونرى كيف يبدو. نحن في مترجم GDB عبر الإنترنت هذه المرة. ولدينا برنامج يستخدم بعض تعابير لامدا. دعنا نشغلها أولاً ونرى ما الذي تفعله. انقر فوق تشغيل Run. وكما ترى، لدينا آلة حاسبة. صفر للخروج من البرنامج، واحد، اثنان، ثلاثة، أربعة للجمع والطرح، الضرب والقسمة. إذا ضغطت على الرقم واحد، سيطلب مني إدخال رقمين لجمعهما. سأدخل اثنين وسبعة ويعطيني إجابة تقول أن اثنين زائد سبعة يساوي تسعة إذا قمت بالطرح، فهذا رقم اثنين، سيطلب مني مرة أخرى إدخال رقمين. هذه المرة، سأدخل سبعة واثنين وتعطيني الإجابة سبعة ناقص اثنين يساوي خمسة. إذا أردت القيام ببعض عمليات الضرب، فهذا هو الرقم ثلاثة. سيطلب مني إدخال رقمين لضربهما. دعنا نستخدم بعض الأعداد الأكبر. 75 ضرب 100 ويخبرنا أن 75 في 100 يساوي 7500. أخيرًا، الرقم أربعة هو القسمة. ويطلب مني إدخال رقمين للقسمة. حسنًا، سآخذ الرقم 10 وسأقسمه على صفر. بمجرد أن أقسم على صفر، يقول لا يمكن تقسيم الصفر إلى 10، الرجاء إدخال قاسم جديد. إذا إدخلت أربعة، 10 على 4 يساوي 2. مرة أخرى، لا نتعامل مع الكسور هنا، على الرغم من أننا نستطيع إذا أردنا ذلك. إذا قمت بتبديل هذا وقاموا بالقسمة مرة أخرى، وقلت أود تقسيم أربعة ونقسمها على سبعة تقول سبعة لا يمكن تقسيمها إلى أربعة. يجب أن أستخدم قاسمًا جديدًا. يجب أن يكون الرقم الثاني الذي تدخله أقل من الرقم الأول. لذا سأدخل اثنين ويخبرني أن أربعة على اثنين يساوي اثنين. أخيرًا، عند انتهاء البرنامج، أكتب صفر للخروج ويقول شكرا لك لاستخدام حاسبة Knowledge City. حسنًا، بعد أن رأيت البرنامج قيد التشغيل، دعنا نلقي نظرة على الكود الذي يجعله يعمل. أبدأ بإعلان Scanner وسيسمح لي ذلك بإدخال بعض الأرقام. لدي فئة Main، وفي الفئة Main، وهذا أمر بالغ الأهمية لاستخدام لامدا جافا، لدي واجهتان. والواجهة هي الشيء الذي يسمح لي بإرسال المعلمات لدوال مختلفة. في هذه الحالة، لدي واجهة تسمى doTheMath، وأعلن عن دالة داخل doTheMath تسمى addSubMultDiv تقبل وسيطين، كلاهما عدد صحيح. وتعيد عددًا صحيحًا. تقبل الواجهة الأخرى سلسلة التي هي رسالة وسيسمح لي ذلك بطباعة المعلومات على وحدة التحكم. لذا فإن هاتين الواجهتين هما الشيء الذي سيجعل تعابير Java lambda الخاصة بنا تعمل. أنا أيضا أعلن عن دالة تسمى التشغيل Operate حيث سأحصل على int الذي سأسميه أ، العدد الذي سأسميه ب، doTheMath والنص. والفكرة هنا هي أنني سأقوم باستدعاء هذين الأمرين بناءً على المعلمات التي يتم إرسالها إلى هذه الدالة. أدخل في روتين Main argument الخاص بي، ولدي أربع ميزات للآلة الحاسبة، وفي كل مرة استدعي فيها doTheMath. وأنا أقوم بإعداده بحيث يقوم بالجمع ببساطة عن طريق جمع x زائد y معًا، x في y،x على y أو x ناقص y. أعددت كائنًا جديدًا للآلة الحاسبة، وقمت بإنشاء Scanner الخاص بي والإعلان عن المتغيرات التي سأحتاجها للبرنامج. المنطقة التالية تسمح لي بوضع قائمة على الشاشة. أضع ذلك في حلقة While بحيث تظهر طالما أن الجواب المقدم أكبر من الصفر. بمجرد كتابة الصفر للخروج من البرنامج، تتوقف حلقة while وينتهي البرنامج. بمجرد أن أحصل على إجابتهم، واحد، اثنان، ثلاثة، أو أربعة، أنا استخدم بيان التبديل لمعرفة كيفية معالجة هذه الإجابة واستدعاء العنصر الصحيح. سنستخدم المخرج أولاً. هذا رقم صفر وسأرسل رسالة إلى واجهة الكلام الخاصة بي لإخبار المستخدم بالشكر لاستخدام حاسبة Knowledge City. وسأرسل لها تلك الرسالة. في حالة كتابة واحد، سأطلب منهم إدخال رقمين. وسأجمع هذه الأرقام معًا، ثم اطبع الإجابة وهنا حيث تعمل Java lambda بشكل مثالي. يمكنني استدعاء هذا الروتين calc.operate num1,num2 وحقيقة أنني أريد جمع هذه الأرقام معًا. ما أفعله هنا في Java lambda هو أني أقوم بتبسيط الكود الخاص بي، وإلا كنت سأضطر إلى إنشاء دالة لكل عنصر من هذه العناصر. وبينما قد تقول جيدًا، هناك أربعة عناصر فقط، لا مشكلة، قد يأتي وقت تحتاج فيه إلى العديد والعديد من العناصر، ولديها دالة واحدة متاحة التي تقبل معاملات متعددة والعمليات المختلفة التي يجب القيام بها توفر عليك الكثير من الوقت في الترميز. يعمل باقي البرنامج بنفس الطريقة تقريبًا. كود كل من هذه العمليات، الجمع والطرح والضرب والقسمة هو بالضبط نفس الشيء باستثناء القسمة حيث لدي علامة تحديد للتأكد أن هذا الرقم اثنان ليس أكبر من رقم واحد لأنني لا أريد قسمة عدد أكبر إلى عدد أصغر. ولا يمكنني استخدام الصفر كرقم أقسم عليه. لذلك إذا كان أي من هذه الشروط صحيحًا، أنا أصدر رسالة خطأ التي تقول أننا لا نستطيع فعل ذلك. الرجاء إدخال قاسم جديد. عندما يكتبون رقمًا مقبولاً، يمر النظام ويستدعي calc.operate ويرسل لها دالة القسمة. الآن أنت تعرف كيفية استخدام الواجهة لإنشاء تعبير Java lambda، ثم استدعاء هذا التعبير بناءً على ما تريد فعله في البرنامج.