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 o var , hacer la declaración final ( "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 y hashCode 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
}


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow