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

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

5
Почему в C # анонимный метод не может содержать оператор yield?
Я подумал, что было бы неплохо сделать что-то вроде этого (с лямбдой, возвращающей yield): public IList<T> Find<T>(Expression<Func<T, bool>> expression) where T : class, new() { IList<T> list = GetList<T>(); var fun = expression.Compile(); var items = () => { foreach (var item in list) if (fun.Invoke(item)) yield return item; // …

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

5
Возврат или выход из функции, которая вызывает генератор?
У меня есть генератор, generatorа также удобный метод generate_all. def generator(some_list): for i in some_list: yield do_something(i) def generate_all(): some_list = get_the_list() return generator(some_list) # <-- Is this supposed to be return or yield? Должен generate_all returnили yield? Я хочу, чтобы пользователи обоих методов использовали его одинаково, т.е. for x …

2
В PHP: в чем разница между «return», «yield», «yield from» и смешиванием yield и return в одной и той же функции?
Разница между return и yieldказалась очевидной, пока я не выяснил, была также yield fromи возможность комбинировать и то returnи другое в одной и yieldтой же функции! Мое понимание returnбыло то, что все после не было выполнено, верно? Однако: function generate(): iterable { return [1, 2, 3]; } foreach (generate() as …
10 php  return  generator  yield 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.