Rust의 제네릭(Generic)

2023. 1. 9. 22:21Language/Rust

개요

여러 언어에서 제네릭(generic)이란 데이터의 타입을 사용합니다.

데이터의 타입을 일반화한다(generalize)라는 것을 의미하며, 반복적인 코드의 작성을 줄여줍니다.

Rust에서 제네릭을 어떻게 사용하는지 알아봅니다.

 

제네렉(Generic)

제네렉은 반복적인 코드를 작성 할 필요성을 줄이고 대신 이 작업을 컴파일러에 위임하는 동시에 코드를 보다 유연하게 만드는 방법입니다.

제네릭을 사용하면 각 데이터 유형에 대해 동일한 코드를 다시 작성할 필요없이 여러 데이터 유형과 함께 사용할 수 있는 코드를 작성 할 수 있으므로 작업이 더 쉬워지고 오류가 덜 발생하는 코딩이 가능합니다. 

 

 

제네릭 함수

제네릭을 함수에 활용하면 다양한 타입의 파라미터를 받아 작업 할 수 있습니다.

fn print<T>(x:T) -> T {
    x
}

fn main(){
    println!("int : {}", print(10));
    println!("float : {}", print(10.2));
    println!("string : {}", print("String"));
}

int형, float형, string형 등 다양하게 Return을 할 수 있습니다.

 

use std::ops::{Add};
use std::time::{Duration};

fn add<T: Add<Output = T>>(i:T, j:T) -> T {
    i + j
}

fn main(){
    let floats = add(1.2, 3.4);
    let ints = add(10, 20);

    let durations = add(
        Duration::new(5,0),
        Duration::new(10, 0)
    );

    println!("float : {}", floats);
    println!("ints : {}", ints);
    println!("Duration : {:?}", durations);
}

또한, Add 트레이트를 사용하면 같은 타입의 데이터를 더해서 결과를 리턴 할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

'Language > Rust' 카테고리의 다른 글

Rust Dangling Pointer  (0) 2023.02.25
Rust의 배열  (0) 2023.01.09
Rust의 반복문  (0) 2023.01.08
Rust의 숫자  (0) 2023.01.08
Rust 실행 파일 만들기  (0) 2023.01.08