Как объект IntRange может иметь доступ к функции Iterator, например. для каждого?

Если ваш входной файл имеет фиксированное количество столбцов, разделенных запятыми, и вы знаете, в каких столбцах это строки, лучше всего использовать функцию

textscan()

. Обратите внимание, что вы можете указать формат где вы читаете до максимального количества символов в строке или пока не будет найден разделитель (запятая).

0
задан Elye 13 July 2018 в 08:29
поделиться

2 ответа

Здесь нет никакой магии. IntRange является подклассом IntProgression, который реализует интерфейс Iterable . Вы можете увидеть исходный код реализации здесь .

5
ответ дан yole 17 August 2018 в 13:20
поделиться
  • 1
    Приятно, спасибо! Он ослеплен, поскольку реализация выполняется несколькими строками ниже. – Elye 13 July 2018 в 08:37

Как IntProgression, так и ClosedRange, похоже, не реализуют интерфейс Iterator.

Поскольку функция forEach включена Iterable, им необходимо реализовать Iterable, и IntProgression:

open class IntProgression : Iterable<Int>
1
ответ дан Alexey Romanov 17 August 2018 в 13:20
поделиться
  • 1
    Приятно, спасибо! Он ослеплен, поскольку реализация выполняется несколькими строками ниже. – Elye 13 July 2018 в 08:37
Другие вопросы по тегам:

Похожие вопросы: