web-dev-qa-db-fra.com

Kotlin a-t-il des types primitifs?

Kotlin a-t-il des types primitifs ?. Lorsque je déclare la variable: val myAge: Int = 18 Puis la variable myAge variables stocke les valeurs réelles est 18 Ou stocke les adresses des objets dans la mémoire ?. Si Int est un type primitif, alors pourquoi nous pouvons utiliser sa méthode comme myAge.minus(10)?

Image source: stackoverflow.com

10
Minh Nguyen

Sur le Java Plate-forme, les numéros sont physiquement stockés en tant que types primitifs JVM, à moins que nous ayons besoin d'une référence NULLABLE NUMÉRO (E. int?) Ou des génériques sont impliqués. Dans ce dernier cas, les numéros sont en boîte.

Notez que la boxe des chiffres ne conserve pas nécessairement l'identité:

val a: Int = 10000
println(a === a) // Prints 'true'
val boxedA: Int? = a
val anotherBoxedA: Int? = a
println(boxedA === anotherBoxedA) // !!!Prints 'false'!!!

NOTE "===" utilisé pour comparer la référence ....

D'autre part, il préserve l'égalité:

val a: Int = 10000
println(a == a) // Prints 'true'
val boxedA: Int? = a
val anotherBoxedA: Int? = a
println(boxedA == anotherBoxedA) // Prints 'true'
1
Mohamed AbdelraZek