“int style = SWT.APPLICATION_MODAL |中的”|“是什么? SWT.OK;“做(以及如何谷歌)?

我无法搜索| 在谷歌。 如果你在一个你试图解释的软件源代码中找到它,你不知道它做了什么,你不能向其他人寻求帮助,你怎么知道它的作用?

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

怎么运行的

管道( | )运算符是按位OR运算符,也就是说,它计算两个二进制整数值的OR运算。 如果你看看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并具有“确定”按钮):

 ... 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的幂。

在回答你关于找出它的作用的问题时,我首先会告诉自己这是一个符号还是一个操作符。 仅此一项就可以帮助我找出在Google中搜索的内容。 正在使用的变量类型也给了我一个线索 – 它是一个运行int类型的运算符。

希望有所帮助。

它是一个按位OR ,它提供了一种方法,您可以将一些标志作为单个int传递给SWT组件,而不必使用setter方法的负载重载该类型。

您列出的两个属性表示您有一个对话框或其他窗口,应该在父shell上以模态方式显示,并使用ok按钮。 您可以将它与SWT.CANCEL组合以显示“确定”和“取消”按钮

不幸的是,谷歌在符号方面很糟糕。 相反,我首先查看维基百科页面 ,然后在那里搜索“|”,它位于:

  • 按位逻辑 (〜,&,|,^)

并且该页面非常清楚地了解了什么以及如何使用它。

| 是OR运算符。 这两个值可能是设置为1位的整数的标志,结果值是要使用的样式值。

按位OR 。

对于大多数事情,有一点学习曲线。 如果我正在学习一门新语言,我会认为| 是一个运营商,并将搜索“Java运营商”。

使用可以处理它的搜索引擎: A | 乙