Tout, rien et unité dans Kotlin

Feb 04 2023
Dans ce court article, nous examinerons certains des types spéciaux de Kotlin. Ces types sont Tout, Rien et Unité.
Photo de Mingwei Lim sur Unsplash

Dans ce court article, nous examinerons certains des types spéciaux de Kotlin. Ces types sont Any, Nothinget Unit. Vous en avez peut-être utilisé certains ou tous, mais vous ne connaissez peut-être pas la différence exacte entre eux. Si tel est le cas, alors lisez la suite!

N'importe quel

La documentation officielle des Anyétats:

La racine de la hiérarchie des classes Kotlin. Chaque classe Kotlin a Any comme superclasse.

Cela signifie Anyqu'il s'agit de la classe parente de toute classe que vous définissez dans Kotlin. Cela signifie que si vous suivez la chaîne des parents d'une classe, vous finirez par vous retrouver à Any. C'est l'équivalent exact de ObjectJava.

Voici la définition de Any. Sur la base du paragraphe ci-dessus et de la définition suivante, chaque classe de Kotlin a des méthodes equals, hashCodeet toString.

public open class Any {
    public open operator fun equals(other: Any?): Boolean

    public open fun hashCode(): Int

    public open fun toString(): String
}

Basé sur la documentation officielle deNothing

Vous pouvez utiliser Nothing pour représenter "une valeur qui n'existe jamais": par exemple, si une fonction a le type de retour Nothing, cela signifie qu'elle ne revient jamais (lève toujours une exception).

En termes simples, nous utilisons généralement Nothingcomme type de retour d'une fonction pour indiquer que la fonction lève toujours une exception.

Voici la définition de Nothing.

public class Nothing private constructor()

Un exemple d'utilisation de Nothingse trouve dans la errorfonction qui fait partie de la bibliothèque standard Kotlin :

public inline fun error(message: Any): Nothing = throw IllegalStateException(message.toString())

Unité

La définition de Unitest la suivante :

public object Unit {
    override fun toString() = "kotlin.Unit"
}

Dans Kotlin, le type de retour par défaut d'une fonction signifie Unitque si vous ne spécifiez pas explicitement le type de retour d'une fonction, le compilateur Kotlin l'utilise Unitcomme type de retour.

C'est tout!