gpt4 book ai didi

java - 这是Kotlin中的数据构造 'or' Enum类型吗?

转载 作者:搜寻专家 更新时间:2023-11-01 09:19:39 25 4
gpt4 key购买 nike

代码A来自https://github.com/android/camera/blob/master/CameraXBasic/app/src/main/java/com/android/example/cameraxbasic/utils/ViewExtensions.kt

这是数据结构“还是”枚举类型? FLAGS_FULLSCREEN 是否由系统配置分配了一个值?有时是 View.SYSTEM_UI_FLAG_FULLSCREEN ,有时是 View.SYSTEM_UI_FLAG_LAYOUT_STABLE, 对吗?

关键字 '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 中的 or 语法用于执行 bitwise OR .每个常量(View.SYSTEM_UI_FLAG_LOW_PROFILE、View.SYSTEM_UI_FLAG_FULLSCREEN 等)代表一个整数值,它是 2 的幂。通过将它们组合在一起,我们创建了一个整数值。

例如,假设我们有三个常量 A(值 1)、B(值 2)和 C(值 4)。如果我们想创造一个 A 和 C 组合的值(value),我们会把它们放在一起。

这是它们的二进制和整数表示:

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

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

通过查看 0101,我们可以知道(通过使用 bitwise AND )设置了哪些标志(A 和 C),哪些没有设置(B)。

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

关于java - 这是Kotlin中的数据构造 'or' Enum类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57351056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com