sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
extra_vars4 | |
extra_vars5 | |
extra_vars6 |
어떤분의 코드에서 복합대입연산자 (|=) 를 발견하였다.
비트 OR 대입 연산자인데, 해당 코드에서 왜 그 연산자를 써야했는지에 대한 고민에 며칠을 고생했다.
비트 OR 대입 연산자의 사전적인 정의는 다음과 같다.
|= 비트 OR 대입 연산자
expression1 |= expression2
expression1에 expression1 | expression2의 값을 대입합니다. 예를 들어, 다음 두 명령문은 동일합니다.
x |= y;
x = x | y;
피연산자
expression1:Number - 숫자 또는 변수입니다.
expression2:Number - 숫자 또는 변수입니다.
반환값
Number - 비트 연산의 결과입니다.
예제
다음 예제에서는 비트 OR 대입(|=) 연산자를 사용합니다.
// 15 decimal = 1111 binary
var x:Number = 15;
// 9 decimal = 1001 binary
var y:Number = 9;
// 1111 |= 1001 = 1111
trace(x |= y); // returns 15 decimal (1111 binary)
연산자 하나만 놓고 봤을때는 아주 아주 단순하게 느껴지지만 프로그램 전체적으로 봤을때 해당 연산자를 왜 썼을까? 라는 의미를 고민할땐 결코 만만한 코드가 아니었다.