러스트에서 변수(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
- Rust - String을 char 리스트(Vector)로 변환
- Rust - 문자가 대문자인지 소문자인지 확인
- Rust - String에서 줄바꿈(newline) 문자 제거 방법
- Rust - String 대문자, 소문자 변환
- Rust - 현재 시간 가져오기 (DateTime, chrono)
- Rust - 예외 처리 방법 (Exception handling)
- Rust - String.find()으로 문자열 Index 찾기
- Rust - match (Switch) 사용 방법
- Rust - Vector의 요소 제거 방법 (remove, retain, drain)
- Rust - String의 특정 Index 값 가져오기
- Rust - 문자열 뒤집기, 역순으로 변경
- Rust - String 객체에 문자열 추가하기
- Rust - sleep(), 몇 초 지연/대기 방법
- Rust - String을 Int, Float으로 변환
- Rust - Integer를 String으로 변환
- Rust - Float를 String으로 변환
- Rust - String 비교 방법 (==, !=, eq, ne)
- Rust - String을 str으로, str을 String으로 변환
- Rust - String 공백 제거 (trim, replace)
- Rust - 2개의 배열이 같은지 비교 (==, equals)
- Rust - 배열 길이 가져오기 (Array length)
- Rust - Vector를 배열로 변환 (vector to array)
- Rust - 배열의 최소, 최대 값 찾기 (min, max)
- Rust - 배열의 합계, 평균 (sum, average)
- Rust - 2개의 Vector가 같은지 비교 (==, equals)
- Rust - HashMap을 Vector로 변환
- Rust - Vector의 최소, 최대 값 찾기 (min, max)
- Rust - Vector의 합계, 평균 (sum, average)
- Rust - 벡터 길이 가져오기 (Vector length)
- Rust - 배열을 HashSet으로 변환
- Rust - 배열을 벡터로 변환하는 방법
- Rust - 배열(벡터) 모든 요소 출력
- Rust - 배열 나누기, 자르기 (split_at, slice)
- Rust - 2개 벡터 하나로 합치기
- Rust - HashSet을 Vector로 변환