为什么不将int分配给f32变量编译?

Vis*_*mud 1 casting rust

为什么除非没有缩小值,否则考虑将一个int值赋值给float变量作为错误?

fn main() {
   let i: f32 = 1i;
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*gan 5

在Rust中,必须明确地完成所有这样的转换:

fn main() {
    let i = 1i as f32;
}
Run Code Online (Sandbox Code Playgroud)

这是一个简单的设计决策.

转换为intto f32也不是无损的,更需要明确这些事情的原因.