Rustで変数の型を印刷するにはどうすればいいですか? 質問する

Rustで変数の型を印刷するにはどうすればいいですか? 質問する

以下のものがあります:

let mut my_number = 32.90;

のタイプを印刷するにはどうすればいいですかmy_number?

と を使用してtypetype_of機能しませんでした。数値の種類を印刷できる別の方法はありますか?

ベストアンサー1

あなたはstd::any::type_name関数。これにはナイトリーコンパイラや外部クレートは必要なく、結果もまったく正確です。

fn print_type_of<T>(_: &T) {
    println!("{}", std::any::type_name::<T>())
}

fn main() {
    let s = "Hello";
    let i = 42;

    print_type_of(&s); // &str
    print_type_of(&i); // i32
    print_type_of(&main); // playground::main
    print_type_of(&print_type_of::<i32>); // playground::print_type_of<i32>
    print_type_of(&{ || "Hi!" }); // playground::main::{{closure}}
}

注意: ドキュメントに記載されているように、この情報はデバッグ目的でのみ使用する必要があります。

これは診断目的で使用されます。文字列の正確な内容と形式は指定されていませんが、タイプに関するベストエフォートの説明が示されています。

コンパイラのバージョン間で型表現を同じにしたい場合は、次のように特性を使用する必要があります。phicrの回答

おすすめ記事