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_FULLSCREEN
le 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
La or
sintaxis 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.