Что делает “|” в “стиле интервала = SWT.APPLICATION_MODAL | SWT.OK”; (и как к Google это)?

Если это имеет значение, от источник jQuery :

jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
    "mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
    "change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){

    // Handle event binding
    jQuery.fn[name] = function(fn){
        return fn ? this.bind(name, fn) : this.trigger(name);
    };
});

Так не, нет никакого различия -

$().click(fn)

вызовы

$().bind('click',fn)

6
задан J. Polfer 8 September 2009 в 21:38
поделиться

7 ответов

Оператор вертикальной черты в этот случай означает «использовать как SWT.APPLICATION_MODAL, так и SWT.OK в качестве параметров / флагов для моего всплывающего окна». Это очень часто используемая идиома с идентификаторами конфигурации битового поля, особенно. в оконных системах, таких как SWT или Win32.

Как это работает

Оператор pipe ( | ) - это побитовый оператор 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

Набор оконных инструментов, который используется для интерпретации стиля, сможет точно сказать, что вы хотите ( всплывающее окно, которое является модальным и имеет кнопку ОК), выполнив побитовое И вот так:

...
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.

Это позволяет вам выбрать / представить несколько параметров конфигурации в одной переменной. Уловка заключается в целочисленных определениях параметров и обеспечении того, чтобы они были только степенями 2.

Это позволяет вам выбрать / представить несколько параметров конфигурации в одной переменной. Уловка заключается в целочисленных определениях параметров и обеспечении того, чтобы они были только степенями 2.

30
ответ дан 8 December 2019 в 02:09
поделиться

Отвечая на ваш вопрос о том, что он делает, я бы сначала подумал, был ли это символ или оператор. Одно это помогает мне понять, что искать в Google. Типы используемых переменных также дают мне подсказку - это оператор, работающий с типами int.

Надеюсь, что это поможет.

11
ответ дан 8 December 2019 в 02:09
поделиться

Это побитовое ИЛИ , оно дает вам возможность передать число флагов для компонента SWT в виде одного int, вместо того, чтобы перегружать тип множеством методов установки.

Два перечисленных вами свойства указывают на то, что у вас есть диалоговое окно или другое окно, которое должно отображаться модально поверх родительской оболочки, и нажмите кнопку ОК. Вы можете объединить его с SWT.CANCEL для отображения кнопок OK и Отмена, например

2
ответ дан 8 December 2019 в 02:09
поделиться

К сожалению, Google плохо разбирается в символах. Вместо этого я бы начал с просмотра страницы Википедии и поискал там «|», который находится по адресу:

, и на этой странице есть неплохой обзор того, что, что и как использовать.

2
ответ дан 8 December 2019 в 02:09
поделиться

| является оператором ИЛИ. Эти два значения, вероятно, являются флагами, которые представляют собой целые числа с установленным 1 битом, и результирующее значение - это то, какие значения стиля использовать.

1
ответ дан 8 December 2019 в 02:09
поделиться

Поразрядное ИЛИ .

Для большинства вещей требуется некоторое обучение. Если бы я изучал новый язык, я бы предположил, что | был оператором и искал «операторы Java».

0
ответ дан 8 December 2019 в 02:09
поделиться

Воспользуйтесь поисковой системой, которая может с этим справиться: A | B

0
ответ дан 8 December 2019 в 02:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: