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

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

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

13 ответов

4 просмотра

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

простенькие 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() { } }

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

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

Такс, блин, таки кто-то знает, каким образом работают макросы stdin/stdout/stderr? Я влез в stdio.h, там определения нет, отладил через асмокод - вызывается функция со странны...
The Bird of Hermes
18
Всем привет, на линуксе лучше на fasm или nasm учиться писать для начала ?
meszjol
14
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Если у меня есть такой класс: Object = {} function Object:new(a_name, a_transform, a_color, a_mesh, a_material, a_shader, a_textures) local private = {} private.n...
Cuarno Vile
4
было так ;void set_http_ver(RESPD* ptr, char* version, uint32_t length) // example: 'RTSP/1.1 ' set_http_ver: mov eax, [esp + 4] mov ecx, [esp + 8] ...
Mixail Frolov
5
зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
10
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
Где закоментить или что то прописать?
Alibek Кulseitov 🇰🇿
7
Карта сайта