Поиск…


Вступление

У большинства людей, приезжающих в Котлин, есть язык программирования на Java.

В этом разделе собраны примеры, сравнивающие Java с Kotlin, выделяя наиболее важные отличия и те драгоценные камни, которые предлагает Kotlin по Java.

Объявление переменных

В Kotlin объявления переменных выглядят немного иначе, чем Java:

val i : Int = 42
  • Они начинаются с val или var , делая final декларацию (« val ue») или var iable.

  • Тип указывается после имени, разделенного :

  • Благодаря выходу типа Kotlin явное объявление типа может быть опущено, если есть назначение с типом, который компилятор может однозначно обнаружить

Джава Котлин
int i = 42; var i = 42 ( или var i : Int = 42 )
final int i = 42; val i = 42

Быстрые факты

  • Котлин не нужен ; заканчивать заявления
  • Котлин является нулевым
  • Kotlin на 100% совместим с Java
  • У Kotlin нет примитивов (но, если это возможно, оптимизирует их копии объектов для JVM)
  • Классы Котлина имеют свойства, а не поля
  • Kotlin предлагает классы данных с автогенерированными методами equals / hashCode и аксессуарами для полей
  • Kotlin только имеет время выполнения Исключения, не проверено Исключения
  • У Kotlin нет new ключевого слова . Создание объектов выполняется просто путем вызова конструктора, как и любого другого метода.
  • Kotlin поддерживает (ограничивает) перегрузку оператора . Например, доступ к значению карты можно записать так: val a = someMap["key"]
  • Kotlin не только может быть скомпилирован в байтовый код для JVM, но также и в Java Script , позволяя вам писать код и код интерфейса в Kotlin
  • Kotlin полностью совместим с Java 6 , что особенно интересно в отношении поддержки (не очень) старых Android-устройств
  • Kotlin - официально поддерживаемый язык для разработки Android
  • Коллекции Котлина имеют встроенное разделение между изменчивыми и неизменными коллекциями .
  • Котлин поддерживает Coroutines (экспериментальный)

Равноправие и идентичность

Котлин использует == для равенства (т. equals Вызовы equals внутренне) и === для ссылочной идентичности.

Джава Котлин
a.equals(b); a == b
a == b; a === b
a != b; a !== b

См. Https://kotlinlang.org/docs/reference/equality.html.

IF, TRY и другие выражения, а не выражения

В Kotlin, if , try и другие выражения (так они возвращают значение), а не (void).

Так, например, у Kotlin нет трехъядерного оператора Elvis от Java, но вы можете написать что-то вроде этого:

val i = if (someBoolean) 33 else 42

Еще более незнакомым, но в равной степени выразительным, является выражение try :

val i = try {
    Integer.parseInt(someString)
}
catch (ex : Exception)
{
    42
}


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow