Итератор
Материал из Википедии — свободной энциклопедии
Итера́тор (англ. iterator) — объект, предназначенный для предоставления доступа к элементам некоторой последовательности. В таких языках, как Оберон и Глагол, называется также бегуно́к и представлен как тип данных. В простейшем случае итератором в низкоуровневых языках является указатель.
Использование итераторов в обобщённом программировании позволяет реализовать универсальные алгоритмы работы с контейнерами или любыми последовательностями.
Содержание |
[править] Применение
[править] Оберон и Глагол
Обычное обращение к переменным, составляющим ряд, осуществляется по их номеру. При этом адрес требуемой переменной вычисляется как: "адрес 1-й переменной" + "размер переменной" x "заданный номер". При последовательном обращении к таким переменным можно получить значительный выигрыш производительности, если вычислять адрес последующей переменной через адрес предыдущей. Для этого и применяется бегунок. Вид переменных, составляющих ряд, к которым будет осуществляться последовательное обращение, называется опорным видом бегунка, а число переменных ряда, на которое будет перемещаться бегунок после каждого такого обращения, называется шагом бегунка. Шаг бегунка задаётся как целая постоянная. Если при объявлении вида шаг бегунка не указан, то считается, что шаг равен 1.
[править] Python
Итераторы нашли широкое применение в языке Python и его стандартной библиотеке. В следующем примере для Python 2.4 (и выше) итератором является сам файловый объект f
, обеспечивающий доступ к файлу как к последовательности строк:
f = file("README") # открытие файла print f.next() # следующее значение итератора - очередная строка файла print sum(len(line) for line in f) # сумма длин всех остальных строк файла
[править] См. также
- Итератор (шаблон проектирования).