这是数据构造“或”枚举类型吗? FLAGS_FULLSCREEN
是由系统配置分配值的吗?有时是View.SYSTEM_UI_FLAG_FULLSCREEN
,有时是View.SYSTEM_UI_FLAG_LAYOUT_STABLE,
对吗?
Kotlin是否定义了关键字“或”?
代码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
答案 0 :(得分:2)
Kotlin中的or
语法用于执行bitwise OR。每个常量(View.SYSTEM_UI_FLAG_LOW_PROFILE,View.SYSTEM_UI_FLAG_FULLSCREEN等)代表一个整数,该整数是2的幂。通过对它们进行或运算,我们创建了一个整数值。
例如,假设我们有三个常数A(值1),B(值2)和C(值4)。如果我们想创建一个由A和C组合而成的值,则可以将它们结合在一起。
这是它们的二进制和整数表示形式
A = 001 (1)
C = 100 (4)
---
101
For the sake of completeness, B would be `010`.
通过查看0101
,我们可以知道(通过使用bitwise AND)设置了哪些标志(A和C),没有设置哪些标志(B)。
是的,我们可以将其视为一种枚举,而不是java / kotlin枚举。