【背景】
在数字的比较运算中,如果需要对两个不同的数进行比较时,编译器会报错的。例如程序如下:
处理这种错误的误的方式有两种,一个是用as 另一种就是使用TryInto方法。这里讨论第二种处理的方法。
代码如下:
use std::convert::TryInto;
fn main() {
let a:i32 = 10;
let b:u16 = 100;
let b_ = b.try_into()
.unwrap();
if a<b_{
println!("a < b!");
}
}
1、引入 use std::convert::TryInto; 这个trait导入当前的局部作用域中。这个语句解锁了变量b的try_int()方法。
2、在let b_ = b.try_into().unwrap();中返回一个Result包装过的i32值。
文章中又提到了b如果转换失败,会导到程序崩溃,在后面会遇到。
除了转换u16,我试了转换u32、u64、u8、i8等其它的数量类型也是可以的。
但是不能转换f32、f64的类型进行对比,在接着后面的内容里又介绍了浮点数的一些陷阱,后面再接着学习。