使用Kotlin组合整数标志的最佳方法是什么?

51
在Java中,我们经常使用 | 运算符来组合标志。
例如:
getWindow().getDecorView().setSystemUiVisibility(
  View.SYSTEM_UI_FLAG_LAYOUT_STABLE | 
  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | 
  View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);

我似乎找不到Kotlin中等效的运算符。 有人知道在Kotlin中方便地组合整数标志的方法吗?

1个回答

103

只需使用or

getWindow().getDecorView().setSystemUiVisibility(
  View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
  View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);

这可能有点令人困惑。你可以创建一个小的帮助扩展函数with(或其他名称)来使其更易读:

这可能会有些晦涩难懂。你可以创建一个帮助函数扩展 with(或其他名称),以使其更易于阅读:

infix fun Int.with(x: Int) = this.or(x)

getWindow().getDecorView().setSystemUiVisibility(
  View.SYSTEM_UI_FLAG_LAYOUT_STABLE with
  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION with
  View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);

4
同意使用中缀表达式,我一直觉得“or”有点令人困惑。 - mradzinski
如果你对电子学很熟悉的话,"或"这个词就会变得非常有意义。 - Grobi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接