Реализация Итераторов

Вы можете также определять свои собственные итераторы в собственных классах. Можно просто следовать определению iterator в вашем классе реализуя методы hasNext и next. Вот, например, класс IntIter являющийся частью стандартной библиотеки:
class IntIter {
    var min : Int;
    var max : Int;

    public function new( min : Int, max : Int ) {
        this.min = min;
        this.max = max;
    }

    public function hasNext() {
        return( min < max );
    }

    public function next() {
        return min++;
    }
}
Как только ваш итератор реализован, вы можете просто использовать его с помощью нотации for...in, таким образом :
var iter = new IntIter(0,10);
for( i in iter ) {
    // ...
}
Переменная в цикле for автоматически объявляется и её тип привязан к типу итератора. Она недоступна после того, как итерация окончена.

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <blockcode> <dd>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>.

Подробнее о форматировании

CAPTCHA
Этот вопрос помогает предотвратить автоматический спам
Image CAPTCHA
Enter the characters shown in the image without spaces, also respect upper and lower case.
To prevent automated spam submissions leave this field empty.