首页 > 其他分享 >rust打印变量类型

rust打印变量类型

时间:2024-09-28 13:47:07浏览次数:7  
标签:std 变量 type 打印 print true any rust

可以试试std::any::type_name。注意,这个是unstable的。

use std::collections::HashSet;

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

fn main() {
    let mut s = HashSet::new();
    let ve = vec![1, 2, 1, 3, 2, 4];
    print_type_of(&s);
    for v in &ve {
        println!("{}", s.insert(v));
    }
}
std::collections::hash::set::HashSet<&i32>
true
true
false
true
false
true

参考文献:
如何在Rust中打印一个变量的类型?
https://stackoverflow.com/questions/21747136/how-do-i-print-the-type-of-a-variable-in-rust/43508373#43508373
https://doc.rust-lang.org/stable/std/any/fn.type_name.html

标签:std,变量,type,打印,print,true,any,rust
From: https://www.cnblogs.com/searchstar/p/18437578

相关文章

  • rust交换数组中的两个元素
    不可以直接用std::mem::swap,因为这个函数需要拿两个可变引用,但是不可以同时拿两个这个数组的可变引用。所以要么手写:lettmp=a[i];a[i]=a[j];a[j]=tmp;要么用Vec::swap:a.swap(i,j);其内部实现:fnswap(&mutself,a:usize,b:usize){unsafe{//......
  • rust二分搜索
    如果要二分搜索某个特定值,可以用binary_search:https://doc.rust-lang.org/stable/std/primitive.slice.html#method.binary_search如果要实现C++里的lower_bound和upper_bound类似的功能,可以用partition_point:https://doc.rust-lang.org/stable/std/primitive.slice.html#meth......
  • Rust索引String
    Rust的String里其实是UTF-8编码的,而UTF-8是变长编码,因此会导致Rust索引String时,可能是索引第k个UTF-8字符(需要遍历字符串),也可能是索引第k个字节。因此,Rust不支持直接用下标来索引String。如果要找到第k个UTF-8字符:s.chars().nth(k)如果要找到第k个字节:letx:u8=s.as_bytes......
  • soft-lockup时在console打印stack
    有时softlockup之后整台机器就没有响应了,在console不断有这些消息被打印出来:[492.400124]watchdog:BUG:softlockup-CPU#5stuckfor22s!但是并没有打印出stack,导致不知道在哪里stuck住了。注意到如果是panic的话stack就会在console被打印出来。所以如果要让softlock......
  • Linux:环境变量
    一、环境变量1.1PATH的引入问题1:为什么我们平时输入的指令可以直接运行,但是自己编译出来的程序却要加./?——>因为指令所需要的相关程序是存储在系统能够查找得到的底下,而我们自己编译出来的程序是在当前的工作目录的,系统并不能直接找到。问题2:凭什么系统可以找到指令的......
  • 动手动脑——同名变量的屏蔽原则
    在Java中,变量的“同名变量的屏蔽原则”通常指的是变量作用域的问题。当在不同的作用域中定义了同名的变量时,内部作用域的变量会“屏蔽”外部作用域的变量。这意味着在内部作用域中访问该变量名时,将会访问到内部作用域中定义的变量,而不是外部作用域中的变量。下面是一个简单的示例......
  • Javascript 一题搞懂 var 变量提升 & 函数声明提升!
    前置知识:在JavaScript中,“变量提升”(Hoisting)是指在代码执行之前,变量和函数声明会被提升到其所在作用域的顶部。对于使用var关键字声明的变量,会发生变量提升现象。一、声明提升1.变量声明提升:无论var变量在代码中的何处声明,它都会被提升到其所在的函数作用域......
  • C++线程同步之条件变量
    条件变量需要和互斥量配合起来使用,C++11提供了两种条件变量:condition_variable:需要配合std::unique_lockstd::mutex进行wait操作,也就是阻塞线程的操作。condition_variable_any:可以和任意带有lock()、unlock()语义的mutex搭配使用,也就是说有四种:std::mutex:独占的非递归互斥锁......
  • c语言数据类型和变量(下)
    2,变量C语⾔中把经常变化的值称为变量,不变的值称为常量。创建变量的语法形式:data_typename; ||||数据类型变量名变量在创建的时候就给⼀个初始值,就叫初始化。intage=18;charch='w';doubleweight=48.0;unsignedintheight=100;2.2变量的分类•全......
  • c语言数据类型和变量(上)
    C语⾔数据类型和变量数据类型介绍常见来说,使⽤整型类型来描述整数,使⽤字符类型来描述字符,使⽤浮点型类型来描述⼩数。C语言的数据类型分为内置类型和自定义类型,这里主要介绍内置类型。1.1字符型(char)char//character[signed]char//有符号的unsignedchar//⽆符号的1......