Шаг 183.
Основы Kotlin.
Объекты. Классы данных. Функция toString()

    На этом шаге мы немного поговорим о реализации этой функции.

    Реализация toString() по умолчанию возвращает для класса малопонятную строку. Возьмем для примера класс Coordinate. Если объявить Coordinate как обычный класс, то вызов toString() для Coordinate вернет что-то вроде:

  Coordinate@3527c201

    Вы видите ссылку на местоположение экземпляра Coordinate в памяти. Возникает законный вопрос: зачем нам информация с подробностями расположения Coordinate в памяти? В большинстве случаев вам это безразлично.

    В своем классе вы можете переопределить toString(), как любую другую открытую функцию. Но классы данных избавляют от этой работы, предлагая свою реализацию по умолчанию. Для Coordinate эта реализация вернет строку:

  Coordinate(x=1, y=0)

    Так как х и у - это свойства, объявленные в главном конструкторе Coordinate, они используются для представления Coordinate в текстовой форме. (isInBounds сюда не входит, потому что оно не было объявлено в главном конструкторе Coordinate.) Реализация toString() в классах данных более полезна, чем реализация по умолчанию в Any.

    На следующем шаге мы рассмотрим функцию equals().




Предыдущий шаг Содержание Следующий шаг