Вопросы с тегом «yield»

yield - это (1) ключевое слово, которое упрощает создание функций генератора, (2) оператор Ruby для передачи управления от одной сопрограммы к другой, (3) оператор Java, используемый для получения значения из выражения переключения.

830
Для чего используется ключевое слово yield в C #?

В вопросе Как я могу раскрыть только фрагмент IList <> у одного из ответов был следующий фрагмент кода: IEnumerable<object> FilteredList() { foreach(object item in FullList) { if(IsItemInPartialList(item)) yield return item; } } Что здесь делает ключевое слово yield? Я видел ссылки в...

407
На практике, каковы основные применения нового синтаксиса «yield from» в Python 3.3?

Мне трудно оборачивать свой мозг вокруг PEP 380 . В каких ситуациях полезно использовать «yield from»? Какой классический вариант использования? Почему это по сравнению с микропотоками? [ Обновить ] Теперь я понимаю причину моих трудностей. Я использовал генераторы, но никогда не использовал...

386
Как я могу ждать в Node.js (JavaScript)? Мне нужно сделать паузу на некоторое время

Я разрабатываю консольный скрипт для личных нужд. Я должен быть в состоянии сделать паузу в течение длительного периода времени, но, согласно моим исследованиям, Node.js не может остановиться как требуется. Через некоторое время становится трудно читать информацию пользователей ... Я видел...

307
IEnumerable и Recursion с использованием доходности

У меня есть IEnumerable<T>метод, который я использую, чтобы найти элементы управления на странице WebForms. Метод рекурсивный, и у меня возникают некоторые проблемы с возвратом yield returnнужного мне типа, когда возвращается значение рекурсивного вызова. Мой код выглядит следующим образом:...

238
Что такое ключевое слово yield в JavaScript?

Я слышал о ключевом слове yield в JavaScript, но нашел очень плохую документацию по нему. Может ли кто-нибудь объяснить мне (или порекомендовать сайт, который объясняет) его использование и для чего он...

171
Зачем использовать ключевое слово yield, когда я могу просто использовать обычный IEnumerable?

Учитывая этот код: IEnumerable<object> FilteredList() { foreach( object item in FullList ) { if( IsItemInPartialList( item ) ) yield return item; } } Почему я не должен просто кодировать это так: IEnumerable<object> FilteredList() { var list = new List<object>(); foreach( object...

164
Возвратите все перечислимые с доходностью сразу; без цикла

У меня есть следующая функция, чтобы получить ошибки проверки для карты. Мой вопрос касается работы с GetErrors. Оба метода имеют одинаковый тип возвращаемого значения IEnumerable<ErrorInfo>. private static IEnumerable<ErrorInfo> GetErrors(Card card) { var errors = GetMoreErrors(card);...

153
Сброс генератора объекта в Python

У меня есть объект генератора, возвращаемый с помощью метода yield. Подготовка к вызову этого генератора довольно трудоемкая операция. Вот почему я хочу использовать генератор несколько раз. y = FunctionWithYield() for x in y: print(x) #here must be something to reset 'y' for x in y: print(x)...

117
Эквивалент C ++ шаблону генератора Python

У меня есть пример кода Python, который мне нужно воспроизвести на C ++. Мне не требуется какое-либо конкретное решение (например, решения yield на основе совместной подпрограммы, хотя они также могут быть приемлемыми ответами), мне просто нужно каким-то образом воспроизвести семантику. питон Это...

112
Есть ли в Java эквивалент ключевого слова yield в C #?

Я знаю, что в самой Java нет прямого эквивалента, но, возможно, стороннего производителя? Это действительно удобно. В настоящее время я хотел бы реализовать итератор, который выдает все узлы в дереве, что составляет около пяти строк кода с...

90
Python: выражение генератора против yield

В Python есть ли разница между созданием объекта- генератора с помощью выражения генератора и использованием оператора yield ? Использование yield : def Generator(x, y): for i in xrange(x): for j in xrange(y): yield(i, j) Использование выражения генератора : def Generator(x, y): return ((i, j) for...

84
Рекурсия с использованием yield

Есть ли способ смешать рекурсию и yieldоператор? Например, генератор бесконечных чисел (с использованием рекурсии) будет выглядеть примерно так: def infinity(start): yield start # recursion here ... >>> it = infinity(1) >>> next(it) 1 >>> next(it) 2 Я старался: def...

10
В PHP: в чем разница между «return», «yield», «yield from» и смешиванием yield и return в одной и той же функции?

Разница между return и yieldказалась очевидной, пока я не выяснил, была также yield fromи возможность комбинировать и то returnи другое в одной и yieldтой же функции! Мое понимание returnбыло то, что все после не было выполнено, верно? Однако: function generate(): iterable { return [1, 2, 3]; }...