Ricerca…


introduzione

La maggior parte delle persone che vengono a Kotlin hanno un background di programmazione in Java.

Questo argomento raccoglie esempi di confronto tra Java e Kotlin, evidenziando le differenze più importanti e quelle gemme che Kotlin offre su Java.

Dichiarazione delle variabili

In Kotlin, le dichiarazioni variabili hanno un aspetto leggermente diverso da quello di Java:

val i : Int = 42
  • Iniziano con uno val o var , che effettua la dichiarazione final ( "val ue") o var iAble.

  • Il tipo è indicato dopo il nome, separato da un :

  • Grazie all'inferenza di tipo di Kotlin, la dichiarazione di tipo esplicita può essere sottomessa se esiste un'assegnazione con un tipo che il compilatore è in grado di rilevare senza ambiguità

Giava Kotlin
int i = 42; var i = 42 ( o var i : Int = 42 )
final int i = 42; val i = 42

I fatti in breve

  • Kotlin non ha bisogno ; finire le dichiarazioni
  • Kotlin è sicuro
  • Kotlin è al 100% Java interoperabile
  • Kotlin non ha primitive (ma ottimizza le loro controparti oggetto per la JVM, se possibile)
  • Le classi di Kotlin hanno proprietà, non campi
  • Kotlin offre classi di dati con metodi equals / hashCode generati automaticamente e hashCode campo
  • Kotlin ha solo eccezioni di runtime, nessuna eccezione verificata
  • Kotlin non ha new parole chiave . La creazione di oggetti avviene semplicemente chiamando il costruttore come qualsiasi altro metodo.
  • Kotlin supporta (limitato) il sovraccarico dell'operatore . Ad esempio, l'accesso a un valore di una mappa può essere scritto come: val a = someMap["key"]
  • Kotlin può essere compilato non solo in codice byte per la JVM, ma anche in Java Script , consentendo di scrivere sia il codice backend che il frontend in Kotlin
  • Kotlin è completamente compatibile con Java 6 , che è particolarmente interessante per quanto riguarda il supporto dei (non così) vecchi dispositivi Android
  • Kotlin è una lingua ufficialmente supportata per lo sviluppo Android
  • Le collezioni di Kotlin hanno una disconnessione incorporata tra collezioni mutevoli e immutabili .
  • Kotlin supporta Coroutine (sperimentale)

Uguaglianza e identità

Kotlin usa == per l'uguaglianza (vale a dire, le chiamate è equals internamente) e === per l'identità referenziale.

Giava Kotlin
a.equals(b); a == b
a == b; a === b
a != b; a !== b

Vedi: https://kotlinlang.org/docs/reference/equality.html

IF, TRY e altri sono espressioni, non affermazioni

In Kotlin, if , try e gli altri sono espressioni (quindi restituiscono un valore) piuttosto che dichiarazioni (nulle).

Quindi, ad esempio, Kotlin non ha l' operatore Elvis ternario di Java, ma puoi scrivere qualcosa del genere:

val i = if (someBoolean) 33 else 42

Ancora più non familiare, ma ugualmente espressivo, è l' espressione try :

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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow