Est-ce la construction de données « ou » type ENUM en Kotlin?

HelloCW :

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_FULLSCREENaffecté 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
Todd:

La orsyntaxe 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.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=236642&siteId=1
conseillé
Classement