Перейти к содержимому
шпаргалка.
Esc
навигацияоткрыть⌘Jпредпросмотр
На этой странице

Типы данных

Все темы Kotlin Developer

Что такое Any, Nothing, Unit в Kotlin?

Определения типов данных:

Any - это базовый класс в Kotlin, от которого наследуются все остальные классы. Он является супертипом для всех классов.

Nothing - это специальный тип, который не имеет значений. Он используется для обозначения ситуаций, когда функция никогда не завершается нормально (например, функция, которая бросает исключение).

Unit - это тип, который используется для обозначения функций, не возвращающих значения. Он аналогичен типу void в других языках программирования.


Какие основные типы данных поддерживаются в Kotlin?

Определения типов данных:

  • Числовые типы:

    • Byte, Short, Int, Long, Float, Double
  • Символьные и строковые типы:

    • Char, String
  • Логический тип:

    • Boolean
  • Коллекции:

    • List, MutableList, Set, MutableSet, Map, MutableMap
  • Nullable типы:

    • Все вышеперечисленные типы могут быть null (например, String?).

Как работают nullable типы в Kotlin и чем они полезны?

Nullable типы в Kotlin обозначаются символом ?. Это позволяет избежать NullPointerException (NPE) путем явного указания, что переменная может быть null.

Пример:

var name: String? = "Alice"
name = null  // Разрешено
println(name?.length)  // Безопасный вызов (safe call), результат: null

Преимущества:

  • Явное указание nullable типов помогает предотвращать ошибки времени выполнения, связанные с null.

  • Компилятор Kotlin требует обработки возможных значений null, что делает код безопаснее.


Объясните различие между val и var.

Основная разница между val и var:

  • val (value): Объявляет неизменяемую переменную, которая может быть назначена только один раз.

    val name = "Alice"
    name = "Bob"  // Ошибка компиляции
  • var (variable): Объявляет изменяемую переменную, значение которой можно изменять.

    var age = 25
    age = 26  // Разрешено

Как работать с коллекциями в Kotlin и какие типы коллекций существуют?

Kotlin различает интерфейсы коллекций только для чтения и изменяемые интерфейсы. List, Set и Map не гарантируют неизменяемость объекта или его элементов; комментарии «неизменяемый» в примерах ниже означают доступ только для чтения.

  1. List и MutableList:

    val list: List<String> = listOf("one", "two", "three")  // Неизменяемый список
    val mutableList: MutableList<String> = mutableListOf("one", "two", "three")  // Изменяемый список
    mutableList.add("four")
  2. Set и MutableSet:

    val set: Set<String> = setOf("one", "two", "three")  // Неизменяемое множество
    val mutableSet: MutableSet<String> = mutableSetOf("one", "two", "three")  // Изменяемое множество
    mutableSet.add("four")
  3. Map и MutableMap:

    val map: Map<String, Int> = mapOf("one" to 1, "two" to 2, "three" to 3)  // Неизменяемый словарь
    val mutableMap: MutableMap<String, Int> = mutableMapOf("one" to 1, "two" to 2, "three" to 3)  // Изменяемый словарь
    mutableMap["four"] = 4
  4. Операции с коллекциями:

    • filter: Фильтрация элементов.

      val filtered = list.filter { it.startsWith("t") }  // ["two", "three"]
    • map: Преобразование элементов.

      val mapped = list.map { it.toUpperCase() }  // ["ONE", "TWO", "THREE"]
    • forEach: Итерация по элементам.

      list.forEach { println(it) }

Эта страница была полезной?