Muh*_*fil 2 types literals rust
Rust文档说默认的整数类型是i32,这意味着变量默认可以保存的最大数字是2147483647ie 2e31 - 1。事实证明,这是千真万确的:如果我试图挽救数量大于2e31 - 1在x变,我得到的错误literal out of range。
码
fn main() {
let x = 2147483647;
println!("Maximum signed integer: {}", x);
let x = 2e100;
println!("x evalues to: {}", x);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我2e100在x变量中保存值,为什么我不会出错?它的计算结果肯定大于2e31 - 1。
输出量
fn main() {
let x = 2147483647;
println!("Maximum signed integer: {}", x);
let x = 2e100;
println!("x evalues to: {}", x);
}
Run Code Online (Sandbox Code Playgroud)
码
fn main() {
let x = 2147483648;
println!("Maximum signed integer: {}", x);
}
Run Code Online (Sandbox Code Playgroud)
输出量
Maximum signed integer: 2147483647
x evalues to: 20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)
诸如此类的常量文字2e100不是整数文字,而是浮点文字。这可以显示为
fn main() {
let () = 2e100;
}
Run Code Online (Sandbox Code Playgroud)
产生
error[E0308]: mismatched types
--> src/main.rs:2:9
|
2 | let () = 2e100;
| ^^ expected floating-point number, found ()
|
= note: expected type `{float}`
found type `()`
Run Code Online (Sandbox Code Playgroud)
也可以看看:
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |