fn main() {
let a = 1i32;
let b = 2i32;
let smallest = (a as f64).min((b as f64)) as i32;
println!("{}", smallest);
}
是否真的需要所有来自浮子的铸件?
答案 0 :(得分:3)
您正在寻找的功能是::std::cmp::min
,适用于任何实现Ord
的类型:
fn main() {
let a = 1i32;
let b = 2i32;
let smallest = ::std::cmp::min(a, b);
println!("{}", smallest);
}
你正在使用f64
中的min方法(f32
存在等效方法)。
答案 1 :(得分:2)
没有。作为quick search of the API reference reveals,您只需使用std::cmp::min
:
use std::cmp::min;
fn main() {
let a = 1i32;
let b = 2i32;
let smallest = min(a, b);
println!("{}", smallest);
}
在min
和f32
上专门声明的 f64
是因为浮点类型未实现Ord
。由于存在NaN,它们只有部分排序(PartialOrd
)而std::cmp::min
需要总排序(Ord
)。