|
Lambda-ifodasining kelib chiqishi
|
bet | 5/9 | Sana | 13.02.2024 | Hajmi | 1 Mb. | | #156042 |
Bog'liq 37-mavzu
Blokli lambda ifodasi turli xil operatsiyalarni bajarish uchun kengaytirilgan imkoniyatlar bilan tavsiflanadi, chunki uning tanasida bir nechta operatorlarni ko'rsatishga ruxsat beriladi. Blokli lambda ifodasini yaratish juda oson. Buning uchun ifodaning tanasini katta qavs ichiga o'rash kifoya. Bir nechta operatorlardan foydalanish qobiliyatidan tashqari, blokli lambda ifodasi yagona lambda ifodasidan deyarli farq qilmaydi.
Blokli lambda-ifodalarining mazmuni har qanday sonli ifodalardan iborat bo'lishi mumkin ammo, amalda odatda ikkitadan yoki uchtadan ko'p ifoda qo’llanilmaydi.
Action greet = nom =>
{
string greeting = "Salom "+nom+" !";
Console.WriteLine(greeting);
};
greet("Komila");
Quyida butun son qiymatining faktorialini hisoblash va qaytarish uchun blokli lambda ifodasini ishlatishga misol keltirilgan.
using System;
namespace Lambda_ifodalar
{
delegate int IntOP (int end);
class Lambda
{
static void Main(string[] args)
{
IntOP fakt =( int n )=> {
int r = 1;
for(int i=1; i <= n; i++)
r = i * r;
return r;
};
Console.WriteLine("Sonni kiriting: ");
int a=int.Parse(Console.ReadLine());
Console.WriteLine(a+"!="+fakt(a));
Console.WriteLine();
Console.ReadKey(true);
}
}
}
Ushbu kodni bajarishda quyidagi natija olinadi.
Yuqoridagi misolda, r o'zgaruvchisi blokli lambda-ifoda tanasida e'lon qilinganiga e'tibor bering, for sikli tashkil qilingan va return operatori ishlatiladi. Ushbu elementlarning barchasini blokli lambda ifodasida qo’llash qulay va bu borada, bu anonim usulga juda o'xshash. Shuning uchun, eski kodni yangilashda ko'plab anonim usullarni blokli lambda ifodasiga aylantirish mumkin.
blokli lambda ifodasini ko'rsatadigan yana bir misolni ko'rib chiqing.
|
| |