이전 포스트에 이어서
https://raycho-dev.tistory.com/164
Rust 언어 기초 문법 완벽 정리 #1
최근 시스템 프로그래밍 언어 중 가장 주목받고 있는 언어가 바로 Rust입니다. Rust는 메모리 안전성(Memory Safety)과 높은 성능을 동시에 제공하며, C/C++를 대체할 차세대 언어로 평가받고 있습니다.
raycho-dev.tistory.com
9. 배열(Array)
고정 길이 배열
let numbers = [1, 2, 3, 4, 5];
println!("{}", numbers[0]);
배열 순회
for num in numbers {
println!("{}", num);
}
10. 튜플(Tuple)
여러 타입을 하나로 묶을 수 있습니다.
let user = ("Kim", 30, true);
접근
println!("{}", user.0);
println!("{}", user.1);
11. 구조체(Struct)
Java의 클래스 비슷한 개념입니다.
struct User {
name: String,
age: u32,
}
생성
let user = User {
name: String::from("Kim"),
age: 30,
};
사용
println!("{}", user.name);
12. 열거형(Enum)
여러 상태를 표현할 때 사용합니다.
enum Direction {
Up,
Down,
Left,
Right,
}
사용
let dir = Direction::Up;
13. match 문
Rust의 강력한 패턴 매칭 기능입니다.
let num = 3;
match num {
1 => println!("One"),
2 => println!("Two"),
3 => println!("Three"),
_ => println!("Other"),
}
14. Option 타입
Rust에서는 null 대신 Option을 사용합니다.
let user: Option<String> = Some(String::from("Kim"));
사용 예
match user {
Some(name) => println!("{}", name),
None => println!("데이터 없음"),
}
15. Result 타입
에러 처리를 위한 타입입니다.
fn divide(a: f64, b: f64) -> Result<f64, String> {
if b == 0.0 {
Err(String::from("0으로 나눌 수 없습니다"))
} else {
Ok(a / b)
}
}
사용
match divide(10.0, 2.0) {
Ok(value) => println!("{}", value),
Err(err) => println!("{}", err),
}
16. 소유권(Ownership)
Rust의 핵심 개념입니다.
let s1 = String::from("hello");
let s2 = s1;
위 코드에서 소유권은 s1에서 s2로 이동(Move)합니다.
println!("{}", s1);
위 코드는 컴파일 에러가 발생합니다.
참조(Borrowing)
let s1 = String::from("hello");
print_str(&s1);
println!("{}", s1);
fn print_str(text: &String) {
println!("{}", text);
}
소유권을 넘기지 않고 사용할 수 있습니다.
17. 벡터(Vector)
동적으로 크기가 늘어나는 배열입니다.
let mut numbers = Vec::new();
numbers.push(10);
numbers.push(20);
numbers.push(30);
또는
let numbers = vec![1, 2, 3];
마무리
Rust는 문법 자체는 비교적 단순하지만, 소유권(Ownership), Borrowing, Lifetime과 같은 독특한 개념 덕분에 메모리 안정성을 보장합니다.
'Programming > Rust' 카테고리의 다른 글
| Rust 언어 기초 문법 완벽 정리 #1 (0) | 2026.08.05 |
|---|---|
| Rust 개발환경 구성 (Windows) (0) | 2026.07.25 |