¿Es esta la construcción de datos 'o' tipo de enumeración en Kotlin?

HelloCW:

El Código A es de https://github.com/android/camera/blob/master/CameraXBasic/app/src/main/java/com/android/example/cameraxbasic/utils/ViewExtensions.kt

¿Es esta la construcción de datos 'o' tipo de enumeración? se FLAGS_FULLSCREENle asigna un valor por la configuración del sistema? a veces es View.SYSTEM_UI_FLAG_FULLSCREEN, a veces es View.SYSTEM_UI_FLAG_LAYOUT_STABLE,correcto?

Es la palabra clave 'o' definido por Kotlin?

Un código

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 orsintaxis en Kotlin se utiliza para hacer un OR bit a bit . Cada una de las constantes (View.SYSTEM_UI_FLAG_LOW_PROFILE, View.SYSTEM_UI_FLAG_FULLSCREEN, etc ...) representa un valor entero que es una potencia de dos. Por o de todas ellas creamos un único valor entero.

Por ejemplo, supongamos que tenemos tres constantes A (valor 1), B (valor 2), y C (de valor 4). Si quisiéramos crear un valor que es la combinación de A y C, que haría o juntos.

Esto es sus representaciones binarias y enteros:

A = 001 (1)
C = 100 (4)
    ---
    101

For the sake of completeness, B would be `010`.

Y mirando 0101, podemos decir (mediante el uso de AND bit a bit ), que se establecieron las banderas (A y C) y cuáles no (B).

Así que sí, nos podríamos verla como una especie de enumeración, pero no es un java / Kotlin enumeración.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=236644&siteId=1
Recomendado
Clasificación