[rust整理笔记]rust基本语法之常用类型转换-05

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/BaiHuaXiu123/article/details/88562297

写程序中,类型经常会相互转换。尤其是对Rust语言来讲,语言本身不会帮我们自动转转,需要显示的进行转换。

1. i32 转 u32

 let x:i32 = 12;
 let y = x as u32;//y的类型u32

2. i32 转 f64

 let x:i32 = 12;
 let y = x as f64;//y的类型f64

3. i32 转 String

 let x:i32 = 12;
 let y = x.to_string();//y的类型String

u32转i32,f64,String同上

4. String 转 i32

  let str = String::from("12");
  let y = str.parse::<i32>().unwrap();

5. String 转 u32

  let str = String::from("12");
  let y = str.parse::<u32>().unwrap();

6. String 转 u32

  let str = String::from("12");
  let y = str.parse::<f32>().unwrap();

7. String 转 &str

  let string:String = String::from("hello");
   let strs:&str = &*string;

8. &str 转 String

  let str:&str = "heelo";
   let string:String = str.to_string();

9. Vec转&[T]/Box<[T]>

   let vec:Vec<i32> = vec![1,2,3,45];
    let arr:&[i32] = &vec[..];
    let arr1 = vec.into_boxed_slice();
    println!("{:?}",arr);

10. &[T]转Vec/Box<[T]>

    let a1:&[i32] = &[1,2,34,5];
    let vec:Vec<i32> = a1.to_vec();
    let b = Box::new(a1);
    println!("{:?}",b);

11. Box<[T]>转Vec/&[T]

    let b:Box<i32> = Box::new(45);
    let vec:Vec<i32> = b.to_vec();
    let a1:&i32= &*b;

猜你喜欢

转载自blog.csdn.net/BaiHuaXiu123/article/details/88562297