Kotlin
Kotlin для разработчиков Java
Поиск…
Вступление
У большинства людей, приезжающих в Котлин, есть язык программирования на 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
}