본문 바로가기
Rust

[Rust] Field Init Shorthand, 필드 초기화 (50일차)

by 꾸압 2023. 2. 1.

 

<설명>

Field Init Shorthand : 필드 초기화 단축 을 쓰는 이유?

>> name field를가진 Data Structure (struct, enum, union)를 초기화할 때 fieldname: fieldname 형식으로 fieldname 작성을 압축 시켜 Code 중복을 적게하고 압축된 Syntax를 제공,

>> When initializing a data structure (struct, enum, union) with named fields, allow writing fieldname as a shorthand for fieldname: fieldname. This allows a compact syntax for initialization, with less duplication.

 


 

<예제 코드_1>

#[derive(Debug)]
struct Person {
    name: String,
    age: u8,
}

fn main() {
    let name = String::from("Peter");
    let age = 27;

    // 전체 구문
    let peter = Person { name: name, age: age };

    let name = String::from("Portia");
    let age = 27;

    // 단축된 필드 초기화 구문
    let portia = Person { name, age };

    println!("{:?}", portia);
}

 


 

<예제 코드_2>

// Function을 통한 초기화
#[derive(Debug)]
struct Person {
    name: String,
    age: i32,
}

fn reset_field(person: &mut Person) {
    person.age = 0;
}

fn main() {
    let mut p = Person { name: "John".to_string(), age: 30 };

    reset_field(&mut p);

    println!("{:?}", &p);
}

 


 

<참조 1> https://rinthel.github.io/rust-lang-book-ko/appendix-06-newest-features.html

<참조 2> https://chat.openai.com/chat

 

 

'Rust' 카테고리의 다른 글

[Rust] HashMap 예제 (52일차)  (0) 2023.02.03
[Rust] Overloading 예제 (51일차)  (0) 2023.02.02
[Rust] Web Server : Multi-Threading 추가 (49일차)  (0) 2023.01.31
[Rust] Web-Server 제작 (48일차)  (0) 2023.01.30

댓글