Le Code A est de https://github.com/android/camera/blob/master/CameraXBasic/app/src/main/java/com/android/example/cameraxbasic/utils/ViewExtensions.kt
Est - ce la construction de données « ou » type Enum? est FLAGS_FULLSCREEN
affecté d' une valeur de configuration du système? il est parfois View.SYSTEM_UI_FLAG_FULLSCREEN
, il est parfois View.SYSTEM_UI_FLAG_LAYOUT_STABLE,
vrai?
Le mot-clé « ou » défini par Kotlin?
code A
const val FLAGS_FULLSCREEN =
View.SYSTEM_UI_FLAG_LOW_PROFILE or
View.SYSTEM_UI_FLAG_FULLSCREEN or
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
La or
syntaxe Kotlin est utilisée pour faire une opération OR . Chacun des constantes (View.SYSTEM_UI_FLAG_LOW_PROFILE, View.SYSTEM_UI_FLAG_FULLSCREEN, etc ...) représente une valeur entière qui est une puissance de deux. En les ou-ing ensemble , nous créons une valeur unique entier.
Par exemple, supposons que nous avons trois constantes A (valeur 1), B (valeur 2) et C (valeur 4). Si nous voulions créer une valeur qui est la combinaison de A et C, nous le ferions ou ensemble.
Ce sont leurs représentations binaires et entier:
A = 001 (1)
C = 100 (4)
---
101
For the sake of completeness, B would be `010`.
Et en regardant 0101
, nous pouvons dire (en utilisant au niveau du bit ) qui drapeaux ont été mis en (A et C) et qui ne sont pas (B).
Alors oui, nous pourrions considérer comme une sorte d'énumération, mais pas un java / Kotlin ENUM.