当前位置: 首页 > 面试题库 >

“ |”是什么 以“ int样式= SWT.APPLICATION_MODAL | SWT.OK;” (以及如何使用Google)?

丁钟展
2023-03-14
问题内容

我找不到| 在Google中。如果您在尝试解释的软件源代码中找到它,则您不知道它的作用,也无法向其他人寻求帮助,您将如何找到它的作用?


问题答案:

在这种情况下,管道运算符的意思是“将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项目,该项目使用一些C ++组件,因此我需要Jacob.dll。(在Windows 7上) 无论我把Jacob.dll放在哪里,我都在不断获取。 我在寻找可能的决定,而到目前为止尚未尝试的决定是设置LD_LIBRARY_PATH变量,指向.dll文件。 我经验不足,不熟悉该变量的含义和用法-您能帮我吗? 问题答案: 通常,您必须在JVM的命令行上进行设置:

  • 使用它来分析C或C++中的代码? 使用它来分析x86汇编程序中的代码?

  • 问题内容: 我已经阅读了很多有关@JoinColumn的内容,但是我仍然不明白它的含义。 患者表 车辆表 患者分类 车辆类别 Vehicle Class ---- Entity @JoinColumn(name=”patient_id”) ---- annotation private Patient patient ----field ``` 会说吗?该车辆实体有一个外键到患者实体命名patie

  • 问题内容: 我是Flask的新手。我不明白怎么用。我在某处读到它用于返回查询字符串的值[如果我错了,请纠正我]。以及需要多少个参数。我知道当我必须存储提交的表单数据时,我可以使用 在此,仅传递一个参数。 考虑下面的代码。分页也已在此代码中完成。 在这里,request.args.get()采用两个参数。请解释为什么要使用两个参数以及它的用途。 问题答案: 根据flask.Request.args文

  • 问题内容: 经常出现在Python模块中。即使阅读了Python的文档,我也不明白它的用途以及使用时间/方式。 有人可以举例说明吗? 关于我收到的基本用法的一些答案似乎是正确的。 但是,我需要了解有关工作原理的另一件事: 对我来说,最令人困惑的概念是当前的python版本如何包含未来版本的功能,以及如何使用当前版本的Python成功地编译使用未来版本的功能的程序。 我猜想当前版本包含了将来的潜在功

  • 问题内容: 我想创建一个Android应用程序,以作者身份上传我的大学笔记,任何人都可以下载它。我读到firebase可以帮助我解决这个问题。任何人都可以参考一下来解释什么是firebase,以及如何使用它。谢谢! 问题答案: Firebase团队成员在这里。 tl; dr- 阅读此快速入门,观看此视频。使用FirebaseUI。 Firebase是用于移动和Web应用程序的平台。 Firebas