Avatar ·

Kotlin : Void, Unit et Nothing — quelle est la différence et quand les utiliser ?

Bonjour à tous ! J'ai récemment commencé à apprendre Kotlin et je viens de Java. En Java, j'étais habitué à void pour les méthodes qui ne retournent rien. Mais en Kotlin, je vois trois concepts similaires : Void, Unit et Nothing. Et je suis confus.

Par exemple, j'écris une fonction qui imprime simplement une salutation :

fun greet(name: String) {
    println("Hello, $name!")
}

Le compilateur dit que le type de retour est Unit. Mais je peux aussi écrire :

fun greet(name: String): Unit {
    println("Hello, $name!")
}

Et j'ai aussi vu dans du code d'autres personnes Void (avec une majuscule) et Nothing. Quand j'ai essayé d'utiliser Nothing comme type de retour, le compilateur a dit que la fonction ne se termine jamais normalement.

Veuillez m'expliquer :

  1. Quelles sont les différences entre Unit, Void et Nothing ?
  2. Quand faut-il utiliser