Recherche…


Introduction

La plupart des gens qui viennent à Kotlin ont une formation en programmation Java.

Cette rubrique rassemble des exemples comparant Java à Kotlin, en soulignant les différences les plus importantes et les joyaux proposés par Kotlin sur Java.

Déclaration des variables

Dans Kotlin, les déclarations de variables sont légèrement différentes de celles de Java:

val i : Int = 42
  • Ils commencent par val ou var , rendant la déclaration final (" val ue") ou var iable.

  • Le type est noté après le nom, séparé par un :

  • Grâce à l' inférence de type de Kotlin, la déclaration de type explicite peut être obéie s'il y a une affectation avec un type que le compilateur est capable de détecter sans ambiguïté

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

Faits rapides

  • Kotlin n'a pas besoin ; mettre fin aux déclarations
  • Kotlin est null-safe
  • Kotlin est 100% interopérable avec Java
  • Kotlin n'a pas de primitives (mais optimise ses homologues d'objet pour la JVM, si possible)
  • Les classes Kotlin ont des propriétés, pas des champs
  • Kotlin propose des classes de données avec des méthodes equals / hashCode et des accesseurs de champs générés automatiquement
  • Kotlin a uniquement des exceptions d'exécution, aucune exception vérifiée
  • Kotlin n'a pas de new mot clé . La création d'objets se fait simplement en appelant le constructeur comme toute autre méthode.
  • Kotlin prend en charge la surcharge (limitée) de l' opérateur . Par exemple, l'accès à une valeur de carte peut être écrit comme val a = someMap["key"] : val a = someMap["key"]
  • Kotlin peut non seulement être compilé en octets pour la machine virtuelle Java , mais aussi en Java Script , ce qui vous permet d’écrire à la fois du code backend et du code frontal dans Kotlin.
  • Kotlin est entièrement compatible avec Java 6 , ce qui est particulièrement intéressant en ce qui concerne le support des anciens appareils Android
  • Kotlin est une langue officiellement prise en charge pour le développement Android
  • Les collections de Kotlin présentent une distinction intrinsèque entre les collections mutables et immuables .
  • Kotlin soutient Coroutines (expérimental)

Égalité et identité

Kotlin utilise == pour l'égalité (c'est-à-dire que les appels sont equals interne) et === pour l'identité référentielle.

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

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

SI, TRY et d'autres sont des expressions, pas des déclarations

Dans Kotlin, if , try et d'autres sont des expressions (elles renvoient donc une valeur) plutôt que des instructions (vides).

Ainsi, par exemple, Kotlin n'a pas l' opérateur Elvis ternaire de Java, mais vous pouvez écrire quelque chose comme ceci:

val i = if (someBoolean) 33 else 42

L’ expression try est encore moins familière, mais tout aussi expressive :

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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow