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

4
Почему итераторы в Python вызывают исключение?
Вот синтаксис для итераторов в Java (несколько похожий синтаксис в C #): Iterator it = sequence.iterator(); while (it.hasNext()) { System.out.println(it.next()); } Что имеет смысл. Вот эквивалентный синтаксис в Python: it = iter(sequence) while True: try: value = it.next() except StopIteration: break print(value) Я думал, что исключения должны были использоваться только …

6
Почему Python делает копию отдельного элемента только при итерации списка?
Я только что понял, что в Python, если кто-то пишет for i in a: i += 1 Элементы исходного списка aфактически не будут затронуты вообще, поскольку переменная iоказывается просто копией исходного элемента в a. Для того, чтобы изменить оригинальный элемент, for index, i in enumerate(a): a[index] += 1 будет необходимо. …
31 python  list  iterator 

6
Шаблон итератора - почему важно не раскрывать внутреннее представление?
Я читаю C # Design Pattern Essentials . В настоящее время я читаю о шаблоне итератора. Я полностью понимаю, как реализовать, но я не понимаю важность или вижу вариант использования. В книге приведен пример, где кто-то должен получить список объектов. Они могли бы сделать это, выставив публичную собственность, такую ​​как …

1
Модульные тесты: отложенные утверждения с Linq
Это нормально, чтобы добавить отложенные утверждения, как это var actualKittens = actualKittens.Select(kitten => { Assert.IsСute(kitten); return kitten }); Почему? Так что я могу выполнить итерацию только один раз, даже если операторы ожидают материализованную коллекцию, например: CollectionAssert.AreEquivalent(expectedKittens, actualKittens.ToList()); А также это может быть не просто Select, но метод с определенным итератором, …

1
Являются ли функции генератора действительными в функциональном программировании?
Вопросы: Разрушают ли генераторы парадигму функционального программирования? Почему или почему нет? Если да, могут ли генераторы использоваться в функциональном программировании и как? Учтите следующее: function * downCounter(maxValue) { yield maxValue; yield * downCounter(maxValue > 0 ? maxValue - 1 : 0); } let counter = downCounter(26); counter.next().value; // 26 counter.next().value; …

4
Есть ли у итератора неразрушающий подразумеваемый контракт?
Допустим, я проектирую собственную структуру данных, такую ​​как стек или очередь (например, - это может быть какая-то другая произвольная упорядоченная коллекция, которая имеет логический эквивалент pushи popметоды - то есть деструктивные методы доступа). Если бы вы реализовывали итератор (в частности, в .NET IEnumerable<T>) для этой коллекции, которая появлялась на каждой …

4
C ++ Iterator, Почему нет базового класса Iterator, от которого наследуются все итераторы
Я готовлюсь к экзамену, и у меня есть вопрос, на который я стараюсь дать ответ. Почему не существует базового класса итераторов, от которого наследуются все остальные итераторы? Полагаю, мой учитель ссылается на иерархическую структуру из ссылки на cpp " http://prntscr.com/mgj542 ", и мы должны предоставить другую причину, чем почему они …
11 c++  iterator 

2
Что делает итератор шаблоном дизайна?
Мне было интересно, что же делает Итератор особенным по сравнению с другими подобными конструкциями, и это заставило Банду Четырех перечислить его как шаблон проектирования. Итератор основан на полиморфизме (иерархия коллекций с общим интерфейсом) и разделении задач (итерации по коллекциям должны быть независимы от структуры данных). Но что, если мы заменим …

1
Почему Java Iterator и ListIterator указывают между элементами?
Javadoc для ListIterator говорит: А ListIteratorне имеет текущего элемента; его позиция курсора всегда находится между элементом, который будет возвращен вызовом, previous()и элементом, который будет возвращен вызовом next(). Почему в Java ListIteratorреализовано указание между элементами, а не на текущий элемент? Кажется , что это делает код клиента менее читаемым , когда …
9 java  iterator 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.