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) 

 

연산자 하나만 놓고 봤을때는 아주 아주 단순하게 느껴지지만 프로그램 전체적으로 봤을때 해당 연산자를 왜 썼을까? 라는 의미를 고민할땐 결코 만만한 코드가 아니었다.