연산자 (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;