Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtSpOpIx 16 of 224 menu
◀ ▶

Индекс в Dart

У списка квадратные скобки читают и меняют элемент. Для своего класса ту же запись дают парой operator [] и operator []= - первая принимает индекс, вторая еще и новое значение:

class Row { final List<String> _cells; Row(List<String> cells) : _cells = cells; String operator [](int index) { return _cells[index]; } void operator []=(int index, String value) { _cells[index] = value; } }

Снаружи обращение выглядит как у коллекции: индекс в скобках для чтения, для записи - присваивание со скобками слева от знака равенства:

Row row = Row(["a", "b", "c"]); print(row[1]); row[1] = "z"; print(row[1]);

Индекс может быть не только int. Тип параметра задают в объявлении, лишь бы вызов в коде совпадал с ним.

Сделайте класс Lane над List<String>. Реализуйте чтение и запись через [ ]. Выведите второй элемент набора "one", "two", "three", замените его на "2" и снова выведите.

Для Lane с тремя ячейками "x" запишите в нулевую ячейку "start" и выведите ее содержимое.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить