собственно вопрос - когда в рамках разумности - нельзя обойтись без этого оператора
Asked
Active
Viewed 400 times
0
-
это, по сути, снтаксический сахар, потому без него можно обойтись всегда, но с ним код короче и понятней – tym32167 Oct 10 '18 at 16:34
-
когда нужно проводить итерации, но можно обойтись и без него – Yaroslav Oct 10 '18 at 16:40
1 Answers
0
С помощью yield можно получить результат без вычислений других результатов... Допустим есть некая коллекция которую нужно сгенерировать по некоторому хитрому алгоритму.... Так вот, с помощью yield ты можешь получить результат не генерируя всю коллекцию сразу. А сгенерировать только нужный элемент когда к нему обратишся.
Это неплохо сэкономит ресурсы если коллекция особенно велика или же если получение каждого обьекта долгое (например привязано к обращению к серверу, что создает значительную задержку).
Примеры можно посмотреть здесь: В чем польза yield?
Andrew Stop_RU_war_in_UA
- 19,097
-
ну вы просто описали что этот
yieldделает, но вы не ответили на вопрос -когда в рамках разумности - нельзя обойтись без этого оператора? – tym32167 Oct 10 '18 at 18:25 -
а вот это что?:
Это неплохо сэкономит ресурсы если коллекция особенно велика или же если получение каждого обьекта долгое (например привязано к обращению к серверу, что создает значительную задержку).– Andrew Stop_RU_war_in_UA Oct 10 '18 at 18:27 -
1Это можно решить и без yield, достаточно накидать свой итератор ( энумератор) – tym32167 Oct 10 '18 at 18:29
-
это же можно сказать и о пользе
do whileиforeachиfor, когда естьgoto(да, в шарпе он тоже есть) но ты, почему-то, используешь циклы :) Вопрос был "в каких случаях необходимо и удобнее" и я ответил на этот вопрос :) – Andrew Stop_RU_war_in_UA Oct 10 '18 at 18:32 -
Ну это все понятно, я ведь не спорю (см мой коммент выше), вы просто не указали ничего этого в ответе. То есть на вопрос
когда без yield нельзя обойтись, вы просто описываете что этот yield собой представляет, то есть имхо ответ не сходится с вопросом – tym32167 Oct 10 '18 at 18:38 -
окей, а когда без циклов невозможно обойтись если есть goto ? :) ВСЕГДА можно обойтись костылями. :) Но лучше писать без оных. Как по мне, то на вопрос я ответил. – Andrew Stop_RU_war_in_UA Oct 10 '18 at 18:40
-
Вы мне пишете то, с чем я и так согласен, просто я считаю, что это должно быть не в комментариях, а в ответе. Ну ок, не хотите добавлять это в ответ - как хотите, ваше право. – tym32167 Oct 10 '18 at 18:50