Thinking Different




구조체(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