Junior — Middle
Ներկայացրեք yield ֆունկցիայի աշխատանքի սկզբունքը և ինչպես է այն օգտագործվում Python-ում ինտերատորների իրականացման ժամանակ։
sobes.tech AI
Պատասխան AI-ից
C#-ում yield բանալի բառը օգտագործվում է ինտերատորների իրականացումը պարզեցնելու համար: Դա թույլ է տալիս մեթոդներին վերադարձնել տարրերը մեկը մյուսի հետևից, առանց անմիջապես ամբողջ հավաքածուն հիշողության մեջ ստեղծելու:
Երբ մեթոդը պարունակում է yield return, այն դառնում է ինտերատոր, որը յուրաքանչյուր կանչի ժամանակ վերադարձնում է հաջորդ տարրն ու պահպանում է իր վիճակը միջեւ կանչերի:
Օրինակ:
public IEnumerable<int> GetNumbers()
{
yield return 1;
yield return 2;
yield return 3;
}
// Օգտագործում
foreach(var num in GetNumbers())
{
Console.WriteLine(num);
}
Այստեղ, GetNumbers մեթոդը յուրաքանչյուր կրկնության ժամանակ վերադարձնում է թվեր մեկը մյուսի հետևից: Սա հարմար է հապաղվող հաջորդականությունների սերնդացման համար, խնայում է հիշողությունը և պարզեցնում է կոդը IEnumerable և IEnumerator ինտերֆեյսների ձեռքով իրականացման համեմատ։