Sobes.tech
Junior — Middle

Paaiškinkite yield funkcijos veikimo principą ir kaip ji naudojama iteratorių įgyvendinime Python kalboje.

sobes.tech AI

Atsakymas iš AI

C# kalboje raktinis žodis yield naudojamas iteratorių įgyvendinimo supaprastinimui. Jis leidžia metodams grąžinti elementus po vieną, nekurti visos kolekcijos iš karto atmintyje.

Kai metodas turi yield return, jis tampa iteratoriumi, kuris kiekvienu kvietimu grąžina sekos kitą elementą ir išlaiko savo būseną tarp kvietimų.

Pavyzdys:

public IEnumerable<int> GetNumbers()
{
    yield return 1;
    yield return 2;
    yield return 3;
}

// Naudojimas
foreach(var num in GetNumbers())
{
    Console.WriteLine(num);
}

Čia metodas GetNumbers grąžina skaičius po vieną kiekvienos iteracijos metu. Tai naudinga vėlyvai sekų generacijai, taupo atmintį ir supaprastina kodą, palyginti su rankiniu IEnumerable ir IEnumerator interfeisų įgyvendinimu.