초급 문법 : 16. 결과 타입 (Result<T, E>) – 오류 처리를 위한 기본 타입
✅ 1단계: Result<T, E>란 무엇인가요?
Result<T, E>는 "무언가를 시도했을 때 성공할 수도 있고 실패할 수도 있다"는 것을 표현하는 Rust의 기본 타입입니다.
- T는 성공했을 때 나오는 값의 타입
- E는 실패했을 때 나오는 오류의 타입
기본 형태:
enum Result<T, E> {
Ok(T),
Err(E),
}
- Ok(T)는 성공했을 때의 결과
- Err(E)는 실패했을 때의 오류 정보
✅ 2단계: 아주 간단한 예제
예제 설명:
숫자 10을 어떤 숫자로 나눌 때, 0으로 나누면 오류(Err)를 발생시키고, 그렇지 않으면 성공(Ok)으로 결과를 돌려주는 함수입니다.
🧑💻VS Code에서 코드 작성 방법
코드를 작성하고 실행해 봅시다.
VS Code에서 Rust 파일 생성
1️⃣ 터미널 열기
- VS Code를 실행하고, Ctrl + ~ (물결표) 키를 눌러 터미널을 엽니다.
- 또는 메뉴에서 [터미널] → [새 터미널] 선택하세요.
- 터미널이 이미 열려 있으면, 열려 있는 터미널을 이용하세요.
2️⃣ 새 Rust 프로젝트 생성
- 새로운 Rust 프로젝트를 만들 폴더로 이동 (예: C:\RustProjects)
cd C:\RustProjects
- 터미널에 아래 명령을 입력하고 Enter 키를 누릅니다.
- rust_result 라는 폴더가 생성됩니다.
cargo new rust_result
3️⃣ 프로젝트 열기
- VS Code에서 [파일] → [폴더 열기] 선택 후 rust_result 폴더를 엽니다.
4️⃣ 메인 파일 열기
- 왼쪽 src 폴더에서 main.rs 파일을 클릭하여 엽니다.
아래 코드를 입력하세요.
fn divide(x: i32, y: i32) -> Result<i32, String> {
if y == 0 {
Err(String::from("Cannot divide by zero"))
} else {
Ok(x / y)
}
}
fn main() {
let result = divide(10, 2);
match result {
Ok(value) => println!("Result: {}", value),
Err(error) => println!("Error: {}", error),
}
let result2 = divide(10, 0);
match result2 {
Ok(value) => println!("Result: {}", value),
Err(error) => println!("Error: {}", error),
}
}
✅ 3단계: 이 코드의 작동 원리
코드 | 설명 |
fn divide(x, y) | 두 숫자를 나누는 함수입니다. |
-> Result<i32, String> | 성공하면 정수(i32)를, 실패하면 문자열(String)을 반환합니다. |
if y == 0 { Err(...) } | 나누는 수가 0이면 오류를 반환합니다. |
Ok(x / y) | 성공적으로 나누면 결과를 Ok로 감싸 반환합니다. |
match result { ... } | 결과를 Ok 또는 Err로 나누어 처리합니다. |
✅ 4단계: 실행해보기
Ctrl + S 를 눌러 파일을 저장합니다. (또는 메뉴 -> 파일 -> 저장)
Ctrl + ~ (물결표) 키를 눌러 터미널을 엽니다.
터미널에서 아래 명령어를 입력하세요.
cargo run
출력 결과:
Result: 5
Error: Cannot divide by zero
✅ 5단계: 핵심 요약
용어 | 설명 |
Result<T, E> | 성공(Ok) 또는 실패(Err)를 나타내는 열거형(enum) |
Ok(T) | 성공했을 때 나오는 값 |
Err(E) | 실패했을 때 나오는 오류 메시지 등 |
이상으로 result에 대해 알아보았습니다.
[ Rust ] 러스트 프로그래밍 언어 관련 글 목록입니다.
러스트 컴퓨터 프로그래밍 언어를 아이들에게 알려주기 위해 글을 작성하고 있습니다.가능한 쉽고 자세하게 그리고 잘 따라할 수 있도록 작성해 보려고 합니다.글이 작성되는 대로 계속 추가하
hb-love-each-other.tistory.com
한국 러스트 사용자 그룹
rust-kr.org
Rust Programming Language
A language empowering everyone to build reliable and efficient software.
www.rust-lang.org
'컴퓨터에서는' 카테고리의 다른 글
[ Rust ] 초급 문법 : 17. 모듈 (mod) – 코드 조직화 및 모듈화 (0) | 2025.06.11 |
---|---|
[ Django ] 로그인한 사용자만 접근 가능한 사이트 만들기 (0) | 2025.05.22 |
[ Rust ] 초급 문법 : 15. 옵션 타입 (Option<T>) – 값이 있을 수도 있고 없을 수도 있는 타입 (0) | 2025.05.10 |
[ Rust ] 초급 문법 : 14. 열거형 (enum) – 여러 개의 값 중 하나를 가질 수 있는 타입 (4) | 2025.05.09 |
[ Rust ] 초급 문법 : 13. 구조체 (struct) – 사용자 정의 데이터 타입 만들기 (0) | 2025.05.07 |
댓글