gpt4 book ai didi

java - "|"中的 "int style = SWT.APPLICATION_MODAL | SWT.OK;"有什么作用(以及如何用谷歌搜索它)?

转载 作者:可可西里 更新时间:2023-11-01 18:40:11 26 4
gpt4 key购买 nike

我无法搜索 |在谷歌。如果您在试图解释的软件源代码中发现了它,但您不知道它的作用,也无法向其他人寻求帮助,您将如何找到它的作用?

最佳答案

在这种情况下,管道运算符的意思是“同时使用 SWT.APPLICATION_MODAL 和 SWT.OK 作为我的弹出框的选项/标志。”这是一个非常常用的带有位域配置标识符的习惯用法,尤其是。在 SWT 或 Win32 等窗口系统中。

工作原理

竖线(|)运算符是按位或运算符,即计算两个二进制整数值的或运算。如果查看 APPLICATION_MODAL 和 OK 的定义位置,您会发现它们是这样的:

...
SWT.OK = 1, // 00000001 in binary
SWT.ABORT_RETRY_IGNORE = 2, // 00000010 in binary
SWT.OK_CANCEL = 4; // 00000100 in binary
...
SWT.APPLICATION_MODAL = 32; // 00100000 in binary
... (and so on...)

当您将这些数字中的两个(或更多)按位或在一起时,将为每个选项设置单独的位:

int style = SWT.OK | SWT.APPLICATION_MODAL = 00000001 | 00100000 = 00100001

用于解释样式的窗口工具包将能够通过按位 AND 像这样准确地告诉您想要什么(一个弹出框,它是 Modal 并且有一个 OK 按钮):

...
if(style & SWT.OK)
{
// we want an OK box
}
if(style & SWT.ABORT_RETRY_IGNORE)
{
// we want an Abort/Retry/Ignore box
}
if(style & SWT.OK_CANCEL)
{
// we want an OK/Cancel box
}
...
if(style & SWT.APPLICATION_MODAL)
{
// We want a modal box
}
...

在我看来,有点聪明。它允许您在单个变量中选择/表示多个配置选项。诀窍在于选项的整数定义,并确保它们只是 2 的幂。

关于java - "|"中的 "int style = SWT.APPLICATION_MODAL | SWT.OK;"有什么作用(以及如何用谷歌搜索它)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1396340/

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