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 of var , waardoor de verklaring final ( "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 en hashCode
  • 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
}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow