🐥

rustで変数の型情報を文字列として出力する方法

に公開
 pub fn type_of<T>(_: &T) -> &'static str {
     std::any::type_name::<T>()
 }
 
fn main() {
    println!("Hello, world!");
    let v: Vec<&str> = "abc1defXghiXabc".splitn(2, |c| c == '1' || c == 'X').collect();
    
    print!("v={:?}\n", v);
    print!("typeof(v)={:?},", type_of(&v));
}

上記のtype_of関数を定義してそれを実行すれば型情報を取得できる。

上記の処理の出力は以下のようになる

Hello, world!
v=["abc", "defXghiXabc"]
typeof(v)="alloc::vec::Vec<&str>",

Discussion