Rust 기본 : 구조체 (Struct)
구조체는 관련 데이터를 그룹화 할 수 있게 해줍니다.
구조체 정의
struct User {
name: String,
age: u8
}
fn struct_definition() {
let user = User {
name: String::from("Tom Riddle"),
age: 17u8,
};
println!("User's name: {}", user.name);
println!("User's age: {}", user.age);
}
구조체 수정
struct ShopItem {
name: String,
quantity: u32,
in_stock: bool,
}
fn mutation_structs() {
let mut item = ShopItem {
name: String::from("Socks"),
quantity: 200,
in_stock: true,
};
// 50 쌍의 양말 판매.
item.quantity -= 50;
if item.quantity == 0 {
item.in_stock = false;
}
println!("{} is in stock: {}", item.name, item.in_stock);
}
구조체와 함수
struct ShopItem {
name: String,
quantity: u32,
}
fn structs_and_functions() {
let item = create_item("Socks", 200);
let in_stock = is_in_stock(&item);
println!("{} is in stock: {in_stock}", item.name);
}
fn create_item(name: &str, quantity: u32) -> ShopItem {
ShopItem {
name: name.to_string(),
// 변수와 구조체 필드의 이름이 같을 때,
// 구조체 초기화를 어떻게 간소화할 수 있는지 보자.
quantity,
}
}
fn is_in_stock(item: &ShopItem) -> bool {
item.quantity > 0
}
'개발 > 러스트 (Rust)' 카테고리의 다른 글
Rust 기본, 패턴 매칭 표현식 (Match expression) (0) | 2024.08.13 |
---|---|
Rust 기본, 열거형 (Enumerations) (0) | 2024.08.10 |
Rust 기본, 구조체 (Struct) Tuple structs (0) | 2024.08.06 |
Rust 기본, 구조체 (Struct) Implementation blocks (0) | 2024.08.01 |
Rust 기본, to_string() vs to_owned() (0) | 2024.07.20 |
Rust 기본 : UTF-8 문자열 (Strings) (0) | 2024.07.17 |
Rust 기본, 슬라이스 (Slice) (0) | 2024.07.14 |
Rust 기본, 참조 (Borrow) (0) | 2024.07.09 |