저장 수명과 변경 가능성

var, const와 static의 범위와 쓰기 가능성을 구분합니다.

Wave Foundation

선언별 의미

형식 허용 위치 재대입 용도
var 함수·블록 가능 일반적인 가변 지역 변수
const 최상위 불가 전역 상수 선언
static 최상위 가능 프로그램 수명 동안 존재하는 정적 저장 선언
const PAGE_SIZE: i32 = 4096;
static request_count: i64 = 0;

fun main() {
    var limit: i32 = 4;
    var current: i32 = 0;
    var retries: i32 = 0;

    current += 1;
    retries += 1;
    println("{} {} {}", limit, current, retries);
}

지역 선언 규칙

var value: i32 = 1;
value = 2;

var로 선언한 지역 변수에는 새 값을 대입할 수 있습니다. 프로그램 전체에서 사용할 상수는 최상위에서 const로 선언합니다.

const와 static의 지역 사용

conststatic은 최상위 선언입니다. 함수 본문과 for 초기화에서는 지역 선언인 var를 사용합니다.

수명과 포인터

지역 변수의 주소를 &로 얻을 수 있지만, 포인터가 가리키는 저장소의 실제 유효 기간을 ptr<T> 타입이 추적하지는 않습니다. 지역 저장소의 주소를 함수 밖으로 넘길 때는 그 주소가 계속 유효한지 프로그램 구조에서 직접 보장해야 합니다.