Класс Iterable
Класс Iterable - это абстрактный интерфейс,
который описывает любую коллекцию, элементы которой
можно перебирать по одному в определённом порядке.
Многие встроенные коллекции Dart, такие как List,
Set и Map (через свои представления),
реализуют этот интерфейс. Класс предоставляет
множество методов для работы с элементами:
map, where, reduce, fold,
take, skip и другие. Благодаря тому,
что Iterable является ленивым, многие
операции не выполняются до момента фактического
обращения к элементам.
Синтаксис
Iterable<E> iterable;
Здесь E - это тип элементов коллекции.
Например, Iterable<int> или
Iterable<String>.
Пример
Давайте создадим простой список и получим
его как объект Iterable, а затем переберём
элементы с помощью цикла:
void main()
{
Iterable<int> iter = [1, 2, 3, 4, 5];
for (int num in iter)
{
print(num);
}
}
Результат выполнения кода:
1
2
3
4
5
Пример
Давайте применим метод map к объекту
Iterable, чтобы удвоить каждый элемент,
и получим новый объект Iterable:
void main()
{
Iterable<int> iter = [1, 2, 3, 4, 5];
Iterable<int> doubled = iter.map((int n) => n * 2);
print(doubled.toList());
}
Результат выполнения кода:
[2, 4, 6, 8, 10]
Пример
Давайте отфильтруем элементы объекта
Iterable с помощью метода where,
оставив только чётные числа:
void main()
{
Iterable<int> iter = [1, 2, 3, 4, 5];
Iterable<int> evens = iter.where((int n) => n % 2 == 0);
print(evens.toList());
}
Результат выполнения кода:
[2, 4]