Kotlin
Kotlin para desarrolladores de Java
Buscar..
Introducción
La mayoría de las personas que vienen a Kotlin tienen un fondo de programación en Java.
Este tema recopila ejemplos que comparan Java con Kotlin, resaltando las diferencias más importantes y las gemas que Kotlin ofrece sobre Java.
Declarando variables
En Kotlin, las declaraciones de variables son un poco diferentes a las de Java:
val i : Int = 42
Comienzan con cualquiera
val
ovar
, hacer la declaraciónfinal
( "ue val") o iable var.El tipo se indica después del nombre, separado por
:
Gracias a la inferencia de tipos de Kotlin, la declaración explícita de tipos puede obtenerse si hay una asignación con un tipo que el compilador puede detectar inequívocamente
Java | Kotlin |
---|---|
int i = 42; | var i = 42 ( o var i : Int = 42 ) |
final int i = 42; | val i = 42 |
Hechos rápidos
- Kotlin no necesita
;
para terminar las declaraciones - Kotlin es nulo seguro
- Kotlin es 100% Java interoperable.
- Kotlin no tiene primitivas (pero optimiza sus contrapartes de objetos para la JVM, si es posible)
- Las clases de Kotlin tienen propiedades, no campos
- Kotlin ofrece clases de datos con métodos
equals
/hashCode
generados automáticamente yhashCode
campo - Kotlin solo tiene excepciones en tiempo de ejecución, no tiene excepciones verificadas
- Kotlin no tiene una
new
palabra clave . La creación de objetos se realiza simplemente llamando al constructor como cualquier otro método. - Kotlin soporta sobrecargas de operadores (limitadas). Por ejemplo, el acceso a un valor de un mapa puede escribirse como:
val a = someMap["key"]
- Kotlin no solo se puede compilar en un código de bytes para la JVM, sino también en Java Script , lo que le permite escribir tanto el código de backend como el de frontend en Kotlin
- Kotlin es totalmente compatible con Java 6 , lo cual es especialmente interesante en lo que respecta al soporte de dispositivos Android (no tan antiguos)
- Kotlin es un lenguaje soportado oficialmente para el desarrollo de Android
- Las colecciones de Kotlin tienen una distinción integrada entre las colecciones mutables e inmutables .
- Kotlin apoya a los coroutines (experimental)
Igualdad e identidad
Kotlin usa ==
para la igualdad (es decir, las llamadas son equals
internamente) y ===
para la identidad referencial.
Java | Kotlin |
---|---|
a.equals(b); | a == b |
a == b; | a === b |
a != b; | a !== b |
Consulte: https://kotlinlang.org/docs/reference/equality.html
SI, TRY y otros son expresiones, no declaraciones
En Kotlin, if
, try
y otros son expresiones (por lo que devuelven un valor) en lugar de declaraciones (nulas).
Entonces, por ejemplo, Kotlin no tiene el operador Elvis ternario de Java, pero puede escribir algo como esto:
val i = if (someBoolean) 33 else 42
Aún más desconocida, pero igualmente expresiva, es la expresión de try
:
val i = try {
Integer.parseInt(someString)
}
catch (ex : Exception)
{
42
}