169 похожих чатов

Всем привет. Чем может быть хорош оператор yield? Я что

то не понимаю профита что он дает

13 ответов

13 просмотров

Он полезен тогда когда тебе нужно собрать енумрбл по какой то логике последовательно, возможно из разных источников

простенькие state machine удобно писать. промежуточные результаты (типа суммирования) удобно внутри таких enumerable хранить.

Евгений-Сотников Автор вопроса
Andrew
Он полезен тогда когда тебе нужно собрать енумрбл ...

А зачем он если я сам могу собрать колекцию и вернуть ее как результат безо всяких yield

Andrii Kurdiumov
ты памяти не тратишь

Кроме того оно лениво

Пользователь 64393
практически вроде тоже

не бейте где в синтаксисе ошибся class Fibonacci : IEnumerator<int> { private int alpha = 0; private int beta = 1; public bool MoveNext { var memory = beta; beta = alpha + beta; alpha = memory; return true; } public int Current { get => beta; } } будет сколько угодно новые вещи выплёвывать

Etki
не бейте где в синтаксисе ошибся class Fibonacci ...

всюди ) class Fibonacci : IEnumerable<int>, IEnumerator<int> { private int alpha = 0; private int beta = 1; bool IEnumerator.MoveNext() { var memory = beta; beta = alpha + beta; alpha = memory; return true; } public void Reset() { alpha = 0; beta = 1; } public int Current => alpha; object IEnumerator.Current => Current; public IEnumerator<int> GetEnumerator() => this; IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); public void Dispose() { } }

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта