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

Индекс в Kotlin

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

class Row(private val cells: MutableList<String>) { operator fun get(index: Int): String { return cells[index] } operator fun set(index: Int, value: String) { cells[index] = value } }

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

fun main() { val row = Row(mutableListOf("a", "b", "c")) println(row[1]) row[1] = "z" println(row[1]) }

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

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

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

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