[Rust] 10. 구조체(Struct)
프로그래밍 언어/Rust2023. 2. 10. 13:17
구조체(structure type)
사용자가 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입입니다. 쉽게 말하면, 구조체란 하나 이상의 변수를 묶어서 새로운 자료형을 정의하는 도구입니다. 구조체는 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있습니다.
구조체 구조
// 구조체 생성
Struct 구조체명
{
변수명: 타입,
변수명: 타입,
....
}
// 구조체 사용
let 변수명 = 구조체명 { 타입:값, 타입:값 ... };
간단한 예제로 알아보자
// 이름과 나이를 받는 User 구조체 선언
struct User
{
name: String,
age: i32,
}
fn main()
{
// tom 인스턴스(객체) 생성
let tom = User { name: String::from("Tom"), age: 12 };
println!("name: {}, age: {}", tom.name, tom.age);
}
// 출력 결과
name: Tom, age: 12
듀플형 구조체
구조체에 필드명 없이 타입만 정의하여 사용 가능합니다. 위에서 본 구조체 선언 방식보다 간단하고 편리하다는 장점이 있습니다.
위 예제와 똑같고 구현을 듀플형으로 변경하였습니다.
// 듀플형으로 구현
struct User(String, i32);
fn main()
{
let tom = User(String::from("Tom"), 12);
println!("name: {}, age: {}", tom.0, tom.1);
}
// 출력 결과
name: Tom, age: 12
듀플형의 다른 예제들
struct Point(i32, i32);
struct Color(i32, i32, i32);
fn main()
{
let pt = Point(128, 255);
let color = Color(255, 255, 255);
println!("x: {}, y: {}", pt.0, pt.1);
println!("R: {}, G: {}, B: {}", color.0, color.1, color.2);
}
// 출력 결과
x: 128, y: 255
R: 255, G: 255, B: 255
'프로그래밍 언어 > Rust' 카테고리의 다른 글
[Rust] 12. 모듈화 (mod) (0) | 2023.02.15 |
---|---|
[Rust] 11. 열거형(enum) (0) | 2023.02.14 |
[Rust] 9. 슬라이스 (0) | 2023.02.08 |
[Rust] 8. 참조자 (&) (0) | 2023.02.05 |
[Rust] 7. 소유권 그리고 스택과 힙 (1) | 2023.02.02 |