5.4.4 우선순위(Precedence)

5.4.4 우선순위(Precedence)

내림차순 우선순위 순서로(즉 표의 위쪽 연산자가 먼저 평가됨):

연산자 참고 결합성
!, ++, -- 접미 단항 연산자 right
~, !, -, ++, -- 접두 단항 연산자 right
% modulo left
*, / multiplication, division left
+, - addition, subtraction left
<<, >>, >>> bitwise shifts left
&, ` ,^` bitwise operators
==, !=, <, <=, >, >= comparison left
... interval left
&& logical and left
|| logical or left
@ metadata right
?: ternary right
%=, *=, /=, +=, -=, <<=, >>=, >>>=, &=, |=, ^= compound assignment right
=> arrow right

C 계열 우선순위와의 차이(Differences from C-like precedence)

많은 언어(C++, Java, PHP, JavaScript 등)는 C와 같은 연산자 우선순위 규칙을 사용해요. Haxe에는 이 규칙과의 몇 가지 차이가 있습니다:

  • %(modulo)는 */보다 높은 우선순위를 가지며, C에서는 같은 우선순위예요.
  • |, &, ^(비트 연산자)는 같은 우선순위를 가지며, C에서는 세 연산자가 모두 서로 다른 우선순위예요.
  • |, &, ^(비트 연산자)는 ==, != 등(비교 연산자)보다도 높은 우선순위를 가집니다.

출처: Precedence

본문

우선순위 표

표는 접미 단항부터 화살표까지 내림차순 우선순위와 결합성을 보여줍니다. 위에 있을수록 먼저 평가됩니다.

C와의 차이

Haxe의 modulo는 곱셈/나눗셈보다 우선순위가 높고, 비트 연산자들은 서로 같으면서 비교 연산자보다 높은 우선순위를 가집니다. C와 다릅니다.

더 알아보기