Zum Hauptinhalt springen

전역/지역 저장 규칙

Wave는 저장 수명(storage)과 변경 가능성(mutability)을 키워드 레벨에서 명확히 구분합니다.

요약

  • 전역 상수: const
  • 전역 저장 변수: static
  • 지역 변수: var, let, let mut

즉, top-level에는 conststatic만 선언하고, 함수/블록 내부 지역에는 varlet 계열만 선언합니다.

전역 상수: const

const는 컴파일 시점 상수로 취급되며 재할당할 수 없습니다.

const PAGE_SIZE: i32 = 4096;
const MAGIC: i32 = 0x1BADB002;

전역 저장 변수: static

static은 전역 저장 공간을 가지는 변수입니다. 재할당이 가능하며, 초기값을 주지 않으면 타입의 0 값으로 초기화됩니다.

static COUNTER: i32 = 0;
static VGA_BUFFER: ptr<char> = 0xb8000 as ptr<char>;

지역 변수: var / let

함수나 블록 내부에서는 지역 변수 키워드만 사용합니다.

fun main() -> i32 {
var x: i32 = 10;
let y: i32 = 20;
let mut z: i32 = 30;

x = x + 1;
z = z + 1;
return x + y + z;
}

제약 사항

  • var, let은 top-level에서 사용할 수 없습니다.
  • const, static은 함수/블록 내부에서 사용할 수 없습니다.
  • let은 불변이며 재할당할 수 없습니다.