Тип Any

Тип Any является корневым типом в иерархии классов Kotlin. Все типы в Kotlin, включая примитивные и пользовательские, наследуются от Any. Это означает, что переменная типа Any может содержать значение любого типа.

Синтаксис

kotlinval variable: Any = value

Пример

Создадим переменную типа Any и присвоим ей строковое значение:

kotlinval anyValue: Any = "Hello, World!"
println(anyValue)

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

kotlinString "Hello, World!"

Пример

Присвоим переменной типа Any числовое значение:

kotlinval anyValue: Any = 42
println(anyValue)

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

kotlinInt 42

Пример

Присвоим переменной типа Any значение типа Double:

kotlinval anyValue: Any = 3.14
println(anyValue)

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

kotlinDouble 3.14

Пример

Присвоим переменной типа Any значение типа Boolean:

kotlinval anyValue: Any = true
println(anyValue)

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

kotlinBoolean true

Пример

Присвоим переменной типа Any массив:

kotlinval anyValue: Any = arrayOf(1, 2, 3, 4, 5)
println(anyValue)

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

kotlinArray<Int> [1, 2, 3, 4, 5]

Пример

Для работы с переменной типа Any часто требуется проверка типа и приведение к конкретному типу:

kotlinval anyValue: Any = "Test String"

if (anyValue is String) {
  val strLength = anyValue.length
  println("String length: $strLength")
}

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

kotlinString length: 11

Пример

Использование оператора as для приведения типа:

kotlinval anyValue: Any = 123
val intValue: Int = anyValue as Int
println(intValue)

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

kotlinInt 123

Пример

Использование безопасного приведения типа с оператором as?:

kotlinval anyValue: Any = "Hello"
val intValue: Int? = anyValue as? Int
println(intValue)

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

kotlinnull

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

  • тип Unit,
    который представляет отсутствие значимого значения
  • тип Nothing,
    который представляет значение, которое никогда не существует
  • тип Int,
    который представляет целочисленные значения
  • тип String,
    который представляет строковые значения