Java 这是数据结构吗';或';Kotlin中的枚举类型?

Java 这是数据结构吗';或';Kotlin中的枚举类型?,java,android,android-studio,kotlin,Java,Android,Android Studio,Kotlin,代码A来自 这是“数据构造”还是“枚举类型”?系统配置是否为全屏标记分配了值?有时它是视图。系统\u UI\u标志\u全屏,有时它是视图。系统\u UI\u标志\u布局\u稳定,对吗 关键字“or”是由Kotlin定义的吗 代码A const val FLAGS_FULLSCREEN = View.SYSTEM_UI_FLAG_LOW_PROFILE or View.SYSTEM_UI_FLAG_FULLSCREEN or

代码A来自

这是“数据构造”还是“枚举类型”?系统配置是否为全屏标记分配了值?有时它是
视图。系统\u UI\u标志\u全屏
,有时它是
视图。系统\u UI\u标志\u布局\u稳定,
对吗

关键字“or”是由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

Kotlin中的
语法用于执行以下操作:。每个常量(View.SYSTEM\u UI\u FLAG\u LOW\u PROFILE、View.SYSTEM\u UI\u FLAG\u FULLSCREEN等)表示一个二次幂的整数值。通过将它们组合在一起,我们创建了一个整数值

例如,假设我们有三个常量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
,我们可以知道(通过使用)设置了哪些标志(A和C),哪些标志没有设置(B)


因此,是的,我们可以将其视为一种枚举,而不是java/kotlin枚举

是Kotlin对
|
@AjahnCharles的语法,不是,请看Todd的答案。这很尴尬。。。我完全知道这是一个按位or,但我错误地认为Java对按位or(以及布尔or)都使用了
|
,而Kotlin对这两者都使用了
。显然这两个都不对!所以,尽管我知道这意味着什么,我还是设法发布了一个完全误导的答案。谢谢!如果我们想创建一个a和C的组合值,表达式应该是
const val my=1或4
,或者是
const val my=a或C
,对吗?