Sobes.tech
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 ինտերֆեյսների ձեռքով իրականացման համեմատ։