Skip to content

연산자 (Operators)

Zephyr는 산술, 비교, 논리 및 할당을 위한 표준 연산자 세트를 지원합니다.

산술 연산자

연산자설명예시
+덧셈a + b
-뺄셈a - b
*곱셈a * b
/나눗셈a / b
%나머지 (Modulo)a % b
-단항 마이너스 (음수화)-a

비교 연산자

비교 연산자는 bool 값을 반환합니다.

연산자설명
==동등함 (Equality)
!=동등하지 않음 (Inequality)
<작음
<=작거나 같음
>
>=크거나 같음

논리 연산자

연산자설명
&&논리 AND (단락 평가 지원)
`
!논리 NOT

&&||는 단락 평가(Short-circuit)를 수행합니다.

할당 연산자 (Assignment)

연산자동일한 표현
=기본 할당
+=a = a + b
-=a = a - b
*=a = a * b
/=a = a / b
zephyr
mut x = 10;
x += 5;    // 15
x *= 2;    // 30

옵셔널 체이닝 (?.)

?. 연산자는 좌항이 nil일 경우 에러(Panic)를 발생시키지 않고 nil을 즉시 반환(Short-circuit)합니다.

zephyr
let name = user?.profile?.name;

접근 체인 중 어느 한 단계라도 nil이라면, 프로그램이 중단되지 않고 전체 표현식의 결과가 nil로 평가됩니다.

에러 전파 (?)

? 연산자는 Result<T> 표현식의 결과가 Err일 때, 현재 실행 중인 함수에서 즉시 상위 호출자로 에러를 반환합니다.

zephyr
fn load() -> Result<string> {
    let content = read_file("data.json")?; // 에러 시 즉시 반환
    return Ok(content);
}

연산자 우선순위 (높음 → 낮음)

레벨연산자
7!, 단항 -
6*, /, %
5+, -
4<, <=, >, >=
3==, !=
2&&
1||
0=, +=, -=, *=, /=

괄호를 사용하여 실행 우선순위를 직접 제어할 수 있습니다:

zephyr
let result = (a + b) * c;