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.