Функция toString

Функция toString возвращает строковое представление объекта. Все классы в Kotlin наследуют эту функцию от базового класса Any. По умолчанию функция возвращает строку, содержащую имя класса и хеш-код объекта, но её можно переопределить в пользовательских классах для возврата осмысленного строкового представления.

Синтаксис

kotlinopen fun toString(): String

Пример

Использование toString по умолчанию для простого объекта:

kotlinval obj = Any()
val res = obj.toString()
println(res)

Результат выполнения кода:

kotlinjava.lang.Object@1b6d3586

Пример

Использование toString для базовых типов данных:

kotlinval num = 42
val dbl = 3.14
val flag = true

println(num.toString())
println(dbl.toString())
println(flag.toString())

Результат выполнения кода:

kotlinString "42"
String "3.14"
String "true"

Пример

Переопределение toString в пользовательском классе:

kotlinclass Person(val name: String, val age: Int) {
  override fun toString(): String {
    return "Person(name=$name, age=$age)"
  }
}

val person = Person("John", 30)
println(person.toString())

Результат выполнения кода:

kotlinString "Person(name=John, age=30)"

Пример

Неявный вызов toString при интерполяции строк:

kotlinval number = 123
val text = "The number is: $number"
println(text)

Результат выполнения кода:

kotlinString "The number is: 123"

Пример

Использование toString для коллекций:

kotlinval list = listOf(1, 2, 3, 4, 5)
val map = mapOf("a" to 1, "b" to 2)

println(list.toString())
println(map.toString())

Результат выполнения кода:

kotlinString "[1, 2, 3, 4, 5]"
String "{a=1, b=2}"

Смотрите также

  • функцию equals,
    которая сравнивает объекты на равенство
  • функцию hashCode,
    которая возвращает хеш-код объекта
  • класс Any,
    который является корневым суперклассом для всех классов Kotlin
  • ключевое слово override,
    которое используется для переопределения методов