Запитання з тегом «yield»

return - це (1) ключове слово, яке полегшує створення функцій генератора, (2) оператор Ruby для передачі управління з однієї кореневої програми в іншу, (3) оператор Java, який використовується для отримання значення з виразу переключення.

5
Чому в C # анонімний метод не може містити оператор 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висловлювання? Наприклад, генератор нескінченних чисел (з використанням рекурсії) буде приблизно таким: 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 yield …

6
Ruby: виклик Proc # проти прибутку
Які поведінкові відмінності між двома наступними реалізаціями thriceметоду в Ruby ? module WithYield def self.thrice 3.times { yield } # yield to the implicit block argument end end module WithProcCall def self.thrice(&block) # & converts implicit block to an explicit, named Proc 3.times { block.call } # invoke Proc#call end …
78 ruby  yield 

4
Повернення і прибутковість в одній функції
Що саме відбувається, коли yield і return використовуються в одній функції в Python, наприклад? def find_all(a_str, sub): start = 0 while True: start = a_str.find(sub, start) if start == -1: return yield start start += len(sub) # use start += 1 to find overlapping matches Це все-таки генератор?
77 python  yield 

1
вихід у розуміннях списку та виразах генератора
Наступна поведінка мені здається досить неінтуїтивною (Python 3.4): >>> [(yield i) for i in range(3)] <generator object <listcomp> at 0x0245C148> >>> list([(yield i) for i in range(3)]) [0, 1, 2] >>> list((yield i) for i in range(3)) [0, None, 1, None, 2, None] Проміжні значення останнього рядка насправді не завжди …

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? Я хочу, щоб користувачі обох методів використовували його однаково, …

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