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