Function std::any::type_name_of_val

const: unstable · source ·
pub fn type_name_of_val<T>(_val: &T) -> &'static strwhere
    T: ?Sized,
🔬This is a nightly-only experimental API. (type_name_of_val #66359)
Expand description

以字符串切片的形式返回指向的值的类型的名称。 这与 type_name::<T>() 相同,但是可以在不容易获得变量类型的地方使用。

Note

这旨在用于诊断。没有指定字符串的确切内容和格式,只是对类型的尽力描述。 例如,type_name_of_val::<Option<String>>(None) 可以返回 "Option<String>""std::option::Option<std::string::String>",但不能返回 "foobar"

此外,输出可能会在编译器的版本之间改变。

此函数不能解析 trait 对象,这意味着 type_name_of_val(&7u32 as &dyn Debug) 可以返回 "dyn Debug",但不能返回 "u32"

类型名称不应视为类型的唯一标识符; 多个类型可以共享相同的类型名称。

当前的实现使用与编译器诊断和 debuginfo 相同的基础结构,但这不能保证。

Examples

打印默认的整数和浮点类型。

#![feature(type_name_of_val)]
use std::any::type_name_of_val;

let x = 1;
println!("{}", type_name_of_val(&x));
let y = 1.0;
println!("{}", type_name_of_val(&y));
Run