Kotlin
Kotlin per sviluppatori Java
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
ovar
, che effettua la dichiarazionefinal
( "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 ehashCode
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
}