Suche…


Einführung

Die meisten Leute, die nach Kotlin kommen, haben einen Programmierhintergrund in Java.

In diesem Thema werden Beispiele zum Vergleich von Java und Kotlin gesammelt. Dabei werden die wichtigsten Unterschiede und die von Kotlin angebotenen Juwelen über Java hervorgehoben.

Variablen deklarieren

In Kotlin sehen Variablendeklarationen ein bisschen anders aus als Javas:

val i : Int = 42
  • Sie beginnen mit entweder val oder var , so dass die Erklärung final ( „val ue“) oder var iable.

  • Der Typ wird nach dem Namen angegeben, getrennt durch ein :

  • Dank der Typinferenz von Kotlin kann die explizite Typdeklaration ignoriert werden, wenn eine Zuordnung mit einem Typ vorliegt, den der Compiler eindeutig erkennen kann

Java Kotlin
int i = 42; var i = 42 ( oder var i : Int = 42 )
final int i = 42; val i = 42

Schnelle Fakten

  • Kotlin braucht nicht ; Anweisungen beenden
  • Kotlin ist null-sicher
  • Kotlin ist zu 100% mit Java kompatibel
  • Kotlin hat keine Grundelemente (optimiert jedoch, falls möglich, seine Gegenstücke für die JVM)
  • Kotlin-Klassen haben Eigenschaften, keine Felder
  • Kotlin bietet Datenklassen mit automatisch generierten equals / hashCode Methoden und Feldzugriffsfunktionen an
  • Kotlin hat nur Laufzeitausnahmen, keine markierten Ausnahmen
  • Kotlin hat kein new Keyword . Das Erstellen von Objekten erfolgt einfach durch Aufrufen des Konstruktors wie jede andere Methode.
  • Kotlin unterstützt (begrenzte) Überladung von Operatoren . Der Zugriff auf einen Kartenwert kann beispielsweise wie val a = someMap["key"] geschrieben werden: val a = someMap["key"]
  • Kotlin kann nicht nur in Bytecode für die JVM, sondern auch in Java Script kompiliert werden, sodass Sie sowohl Backend- als auch Frontend-Code in Kotlin schreiben können
  • Kotlin ist vollständig kompatibel mit Java 6 , was besonders für die Unterstützung von (nicht so) alten Android-Geräten interessant ist
  • Kotlin ist eine offiziell unterstützte Sprache für die Android-Entwicklung
  • Kotlins Kollektionen verfügen über eine integrierte Unterscheidung zwischen veränderlichen und unveränderlichen Sammlungen .
  • Kotlin unterstützt Coroutines (experimentell)

Gleichheit & Identität

Kotlin verwendet == für Gleichheit ( === Aufrufe sind intern equals ) und === für referenzielle Identität.

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

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

IF, TRY und andere sind Ausdrücke und keine Anweisungen

In Kotlin sind if , try und andere Ausdrücke (sie geben also einen Wert zurück) und keine (leeren) Anweisungen.

Kotlin hat zum Beispiel nicht Javas ternären Elvis Operator , aber Sie können so etwas schreiben:

val i = if (someBoolean) 33 else 42

Noch ungewohnter, aber ebenso ausdrucksstark ist der try Ausdruck :

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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow