Rust 기초 정리 (2강)
Rust 기초 문법과 개념들을 정리
2.1 자료형 (Data Types)
Rust는 정적 타입 언어로 컴파일 타임에 자료형이 결정됨.
종류 | 예시 | 설명 |
---|---|---|
정수형 | i32, u64 등 | 부호/크기 명시 |
실수형 | f32, f64 | 부동소수점 숫자 |
불린형 | bool | true / false |
문자형 | char | 유니코드 문자 |
문자열 | String, &str | 힙 메모리 or 리터럴 |
튜플 | (i32, f64, char) | 여러 타입 묶음 |
배열 | [i32; 3] | 고정 크기 배열 |
2.2 불변성과 가변성 (Immutability & Mutability)
Rust는 기본적으로 변수는 불변(immutable)
let x = 10; // 불변 변수
let mut y = 20; // 가변 변수 (mut 키워드)
y = 30; // 가능
안전성을 위해 기본은 불변 → 필요할 때만 mut
사용 권장.
2.3 제어문 (Control Flow)
조건문 → if
, else if
, else
let score = 80;
if score >= 90 {
println!("A등급");
} else if score >= 80 {
println!("B등급");
} else {
println!("C등급");
}
2.4 반복문 (Loop)
반복 처리 구문 종류
문법 | 설명 |
---|---|
loop | 무한 반복 |
while | 조건 반복 |
for | 컬렉션 순회 |
for i in 1..=5 {
println!("{}", i);
}
2.5 함수 (Function)
함수 정의와 반환값
fn add(a: i32, b: i32) -> i32 {
a + b // 세미콜론 없으면 return
}
Rust는 명시적 타입 선언 권장
2.6 클로저 (Closure)
익명 함수 (람다식)
let sum = |a: i32, b: i32| -> i32 {
a + b
};
println!("{}", sum(3, 5));
클로저는 환경 변수 캡처 가능 (스코프 안 변수 사용 가능)
2.7 구조체 (Struct)
데이터 묶음 정의
struct User {
name: String,
age: u32,
}
let user = User {
name: String::from("홍길동"),
age: 30,
};
구조체를 이용해 객체지향 프로그래밍 스타일 가능
2.8 열거형 (Enum)
여러 값 중 하나를 표현
enum Color {
Red,
Green,
Blue,
}
let c = Color::Red;
매칭 처리 가능
match c {
Color::Red => println!("빨강"),
Color::Green => println!("초록"),
Color::Blue => println!("파랑"),
}
마무리 정리 Tip
Rust는 "안전하고 빠르고 현대적인 시스템 프로그래밍 언어"
기본 규칙 : 불변, 명시적, 안전성 추구
익숙해질수록 개발 생산성도 올라간다!