How do I print the type of a variable in Rust?

后端 未结 11 2146
无人共我
无人共我 2020-11-22 08:49

I have the following:

let mut my_number = 32.90;

How do I print the type of my_number?

Using type and

11条回答
  •  悲哀的现实
    2020-11-22 09:06

    Some other answers don't work, but I find that the typename crate works.

    1. Create a new project:

      cargo new test_typename
      
    2. Modify the Cargo.toml

      [dependencies]
      typename = "0.1.1"
      
    3. Modify your source code

      use typename::TypeName;
      
      fn main() {
          assert_eq!(String::type_name(), "std::string::String");
          assert_eq!(Vec::::type_name(), "std::vec::Vec");
          assert_eq!([0, 1, 2].type_name_of(), "[i32; 3]");
      
          let a = 65u8;
          let b = b'A';
          let c = 65;
          let d = 65i8;
          let e = 65i32;
          let f = 65u32;
      
          let arr = [1,2,3,4,5];
          let first = arr[0];
      
          println!("type of a 65u8  {} is {}", a, a.type_name_of());
          println!("type of b b'A'  {} is {}", b, b.type_name_of());
          println!("type of c 65    {} is {}", c, c.type_name_of());
          println!("type of d 65i8  {} is {}", d, d.type_name_of());
          println!("type of e 65i32 {} is {}", e, e.type_name_of());
          println!("type of f 65u32 {} is {}", f, f.type_name_of());
      
          println!("type of arr {:?} is {}", arr, arr.type_name_of());
          println!("type of first {} is {}", first, first.type_name_of());
      }
      

    The output is:

    type of a 65u8  65 is u8
    type of b b'A'  65 is u8
    type of c 65    65 is i32
    type of d 65i8  65 is i8
    type of e 65i32 65 is i32
    type of f 65u32 65 is u32
    type of arr [1, 2, 3, 4, 5] is [i32; 5]
    type of first 1 is i32
    

提交回复
热议问题