Kotlin
Kotlin voor Java-ontwikkelaars
Zoeken…
Invoering
De meeste mensen die naar Kotlin komen, hebben een programmeerachtergrond in Java.
Dit onderwerp verzamelt voorbeelden waarin Java wordt vergeleken met Kotlin, waarbij de belangrijkste verschillen en de edelstenen die Kotlin biedt op Java worden belicht.
Variabelen declareren
In Kotlin zien variabele declaraties er iets anders uit dan die van Java:
val i : Int = 42
Ze beginnen met ofwel
val
ofvar
, waardoor de verklaringfinal
( "val ue") of var iable.Het type wordt genoteerd achter de naam, gescheiden door een
:
Dankzij de type-inferentie van Kotlin kan de expliciete typeaangifte worden opgeheven als er een toewijzing is met een type dat de compiler ondubbelzinnig kan detecteren
Java | Kotlin |
---|---|
int i = 42; | var i = 42 ( of var i : Int = 42 ) |
final int i = 42; | val i = 42 |
Snelle feiten
- Kotlin heeft niet nodig
;
om uitspraken te beëindigen - Kotlin is nulveilig
- Kotlin is 100% interoperabel met Java
- Kotlin heeft geen primitieven (maar optimaliseert hun objecttegenhangers voor de JVM, indien mogelijk)
- Kotlin-klassen hebben eigenschappen, geen velden
- Kotlin biedt gegevensklassen met automatisch gegenereerde
equals
/hashCode
methoden enhashCode
- Kotlin heeft alleen runtime-uitzonderingen, geen aangevinkte uitzonderingen
- Kotlin heeft geen
new
trefwoord . Het maken van objecten gebeurt eenvoudig door de constructor aan te roepen zoals elke andere methode. - Kotlin ondersteunt (beperkte) operatoroverbelasting .
val a = someMap["key"]
tot een waarde van een kaart kan bijvoorbeeld worden geschreven als:val a = someMap["key"]
- Kotlin kan niet alleen worden gecompileerd tot bytecode voor de JVM, maar ook in Java Script , zodat u zowel backend- als frontend-code in Kotlin kunt schrijven
- Kotlin is volledig compatibel met Java 6 , wat vooral interessant is voor ondersteuning van (niet zo) oude Android-apparaten
- Kotlin is een officieel ondersteunde taal voor Android-ontwikkeling
- De collecties van Kotlin hebben een ingebouwd onderscheid tussen veranderlijke en onveranderlijke collecties .
- Kotlin ondersteunt Coroutines (experimenteel)
Gelijkheid en identiteit
Kotlin gebruikt ==
voor gelijkheid (dat wil zeggen, roept intern equals
) en ===
voor referentiële identiteit.
Java | Kotlin |
---|---|
a.equals(b); | a == b |
a == b; | a === b |
a != b; | a !== b |
Zie: https://kotlinlang.org/docs/reference/equality.html
IF, TRY en anderen zijn uitdrukkingen, geen verklaringen
In Kotlin, if
, try
en anderen zijn uitdrukkingen (zodat ze terugkeren een waarde) in plaats van (void) statements.
Dus bijvoorbeeld, Kotlin heeft geen Java's ternaire Elvis Operator , maar je kunt zoiets schrijven:
val i = if (someBoolean) 33 else 42
Nog meer onbekend, maar even expressief, is de try
uitdrukking :
val i = try {
Integer.parseInt(someString)
}
catch (ex : Exception)
{
42
}