Rust - 변수 타입 확인 방법 (type_of)

러스트에서 변수(Variable)의 타입을 가져오는 방법에 대해서 알아보겠습니다.

1. type_name을 이용한 방법

std::any::type_name을 이용하여 인자의 타입을 리턴하는 type_of() 함수를 만들 수 있습니다.

아래와 같이 함수에 변수를 전달하면, 변수의 타입이 리턴되는 것을 볼 수 있습니다.

fn type_of<T>(_: T) -> &'static str {
    std::any::type_name::<T>()
}

fn main() {
    let a = 10;
    let b = "Hello";

    println!("type a: {}", type_of(a));
    println!("type b: {}", type_of(b));
}

Output:

type a: i32
type b: &str

Boolean, float, Vector 등, 다른 다양한 타입들도 같은 방식으로 타입을 확인할 수 있습니다.

fn type_of<T>(_: T) -> &'static str {
    std::any::type_name::<T>()
}

fn main() {
    let a = 10.10;
    let b = false;
    let c = String::from("Hello");
    let d = (20, 3.0, "World!");
    let e = [1, 2, 3];
    let f = vec![1, 2, 3];

    println!("type a: {}", type_of(a));
    println!("type b: {}", type_of(b));
    println!("type c: {}", type_of(c));
    println!("type d: {}", type_of(d));
    println!("type e: {}", type_of(e));
    println!("type f: {}", type_of(f));
}

Output:

type a: f64
type b: bool
type c: alloc::string::String
type d: (i32, f64, &str)
type e: [i32; 3]
type f: alloc::vec::Vec<i32>
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha