~/csslab.dev/notes $ ls

// lab

Rust 입문 — 타입과 소유가 먼저 오는 언어

  • Rust를 처음 잡으며 정리한 입문 단계 개념 노트
  • JS·TS에서 넘어오면 걸리는 지점 위주로 정리 — 타입이 컴파일 시점에 확정되고, 변수의 기본이 불변
  • 아직 입문 범위. 소유권·수명 같은 핵심은 이 노트 밖

언어 성격

  • 정적 타입 — 변수 타입이 컴파일 시점에 정해져 있어야 함
  • 명명 규칙은 스네이크 케이스 (snake_case)
  • 변수는 기본이 불변, 바꾸려면 mut를 명시
let x = 5;          // 불변
let mut y = 5;      // 가변
let x = x + 1;      // Shadowing — 같은 이름으로 새 변수를 다시 묶음
  • Shadowing은 재할당이 아니라 새 변수를 만드는 것 — 타입도 바꿀 수 있다는 점에서 mut와 다름

도구 — Cargo

  • 빌드 시스템과 패키지 매니저가 하나로 제공됨
  • 프로젝트 생성·빌드·실행·테스트가 같은 도구 안에 있어 초기 진입이 단순

타입과 표현식

  • 스칼라 — 정수·실수·불리언·문자
  • 복합 — 튜플, 배열
  • 함수 본문의 마지막 표현식이 반환값이 됨 (세미콜론을 붙이면 문이 되어 반환되지 않음)
fn add(a: i32, b: i32) -> i32 {
    a + b        // 세미콜론 없음 → 이 값이 반환됨
}
  • 세미콜론 유무가 반환 여부를 가르는 건 다른 언어에서 넘어올 때 가장 자주 걸리는 지점

반복 제어

  • 중첩 반복문에서 루프 라벨로 어느 루프를 벗어날지 지정 가능
'outer: for i in 0..5 {
    for j in 0..5 {
        if j == 2 { continue 'outer; }   // 바깥 루프로
    }
}

정리

  • 컴파일러가 먼저 막고 나중에 통과시키는 언어 — 초기 마찰이 크지만 그만큼 런타임에 남는 문제가 적음
  • 다음 단계는 소유권·빌림·수명. 입문 범위에서는 다루지 않음