【笔记】Rust数据类型转换

前言

Rust数据类型转换
Rust中没有隐式的数据类型转换,只有显式的数据类型转换

数值字面量转换数据类型

  • 在数值字面量后追加数据类型即可转换数据类型
1
let num:u8 = 1u8;

缺省值

  • 编译器会默认给整数存储为i32,默认给浮点数存储为f64
1
2
let num:i32 = 1;
let num:f64 = 1.0

数值类型变量之间的转换

1
2
let num1:i32 = 1;
let num2:f64 = num1 as f64;

定义数据类型别名

  • 类型别名必须遵循大驼峰命名
1
type 类型别名 = i32;

转换为类型别名

1
let 变量名 = 1 as 类型别名;

自定义结构体实现from

1
2
3
4
5
6
7
8
9
struct 结构体名 {
num:i32
}

impl From<i32> for 结构体名 {
fn from(itrm:i32) -> Self {
结构体名{mum:item}
}
}

通过from转换数据类型

1
2
let s:i32 = 1;
let res:结构体名 = 结构体名::from(s);

通过into转换数据类型

  • 通过into转换数据类型必须指明数据类型
1
2
let s:i32 = 1;
let res:结构体名 = s.into();

字符串与数值类型互转

字符串转换为数值

  • 只要目标类型实现了FromStr,就可以通过parse()把字符串转换为目标类型
1
let res:i32 = "1".parse().unwrap();

完成

参考文献

哔哩哔哩——面向加薪学习