초급 문법 : 15. 옵션 타입 (Option<T>) – 값이 있을 수도 있고 없을 수도 있는 타입
🌱 1단계: Option<T>란 무엇인가요?
Rust에서 어떤 값이 있을 수도 있고, 없을 수도 있는 경우에 Option<T>라는 타입을 사용합니다.
- Some(value) : 값이 있는 경우
- None : 값이 없는 경우
T는 "어떤 타입이든 가능하다"는 뜻입니다. 예를 들어:
- Option<i32> : i32 정수형일 수도 있고 아닐 수도 있음
- Option<String> : 문자열일 수도 있고 아닐 수도 있음
📦 예를 들면, 누군가에게 "나이를 알고 있나요?"라고 물어봤을 때
- "30살입니다" → Some(30)
- "모릅니다" → None
🧑💻 2단계: 간단한 코드 예제
예제 목표
나이를 Option<i32>로 저장하고, 값이 있을 때만 출력해봅니다.
📁 VS Code에서 코드 작성 방법
코드를 작성하고 실행해 봅시다.
VS Code에서 Rust 파일 생성
1️⃣ 터미널 열기
- VS Code를 실행하고, Ctrl + ~ (물결표) 키를 눌러 터미널을 엽니다.
- 또는 메뉴에서 [터미널] → [새 터미널] 선택하세요.
- 터미널이 이미 열려 있으면, 열려 있는 터미널을 이용하세요.
2️⃣ 새 Rust 프로젝트 생성
- 새로운 Rust 프로젝트를 만들 폴더로 이동 (예: C:\RustProjects)
cd C:\RustProjects
- 터미널에 아래 명령을 입력하고 Enter 키를 누릅니다.
- rust_option 이라는 폴더가 생성됩니다.
cargo new rust_option
3️⃣ 프로젝트 열기
- VS Code에서 [파일] → [폴더 열기] 선택 후 rust_option 폴더를 엽니다.
4️⃣ 메인 파일 열기
- 왼쪽 src 폴더에서 main.rs 파일을 클릭하여 엽니다.
✨ main.rs 예제 코드
fn main() {
let age: Option<i32> = Some(30); // Some 값이 있는 경우
let no_age: Option<i32> = None; // None 값이 없는 경우
// 첫 번째 경우: 값이 있는지 확인하고 출력
match age {
Some(a) => println!("Age is: {}", a),
None => println!("No age provided"),
}
// 두 번째 경우: 값이 없는 경우
match no_age {
Some(a) => println!("Age is: {}", a),
None => println!("No age provided"),
}
}
🧪 3단계: 실행해보기
Ctrl + S 를 눌러 파일을 저장합니다. (또는 메뉴 -> 파일 -> 저장)
Ctrl + ~ (물결표) 키를 눌러 터미널을 엽니다.
터미널에서 아래 명령어를 입력하세요.
cargo run
🖥️ 결과:
Age is: 30
No age provided
🧠 4단계: 설명
코드 | 설명 |
let age: Option<i32> = Some(30); | 30이라는 값을 가진 Option 타입 |
let no_age: Option<i32> = None; | 값이 없음 (None) |
match age | Option 안에 값이 있는지 검사함 |
Some(a) | 값이 있으면 a에 저장해서 사용 |
None | 값이 없으면 이 코드 실행 |
✅ 정리
- Option<T>는 값이 있을 수도 있고, 없을 수도 있는 경우 사용합니다.
- Some(value)는 값이 있음, None은 값이 없음입니다.
- match를 사용해서 Option을 검사합니다.
이상을 option에 대해 알아보았습니다.
[ 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 ] 초급 문법 : 14. 열거형 (enum) – 여러 개의 값 중 하나를 가질 수 있는 타입 (4) | 2025.05.09 |
---|---|
[ Rust ] 초급 문법 : 13. 구조체 (struct) – 사용자 정의 데이터 타입 만들기 (0) | 2025.05.07 |
[ Rust ] 초급 문법 : 12. 튜플 (tuple) – 여러 개의 값을 묶어서 다루는 구조 (0) | 2025.05.06 |
[ Rust ] 초급 문법 : 11. 배열과 슬라이스 – 배열과 슬라이스 데이터 다루기 (0) | 2025.04.28 |
[ Rust ] 초급 문법 : 10. 사용자 입력과 출력 (println!, std::io) – 화면에 출력하고 입력 받기 (0) | 2025.04.25 |
댓글