0


Rust安全之数值

文章目录

数值溢出

编译通过,运行失败
cargo run 1

fnmain(){letmut arg =std::env::args().skip(1).map(|x| x.parse::<i32>().unwrap()).next().unwrap();let m_i =i32::MAX-1;let a = m_i + arg;println!("{:?}", a);}
thread 'main' panicked at 'attempt to add with overflow', src\bin\rssh3.rs:13:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: process didn't exit successfully: `target\debug\rssh3.exe 1`(exit code: 101)

编译不通过

fnmain(){let m_i =i32::MAX;let a = m_i +1;println!("{:?}", a);}

输出

error: this arithmetic operation will overflow
 --> src\bin\rssh3.rs:9:13
  |9|let a = m_i + 1;|             ^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow
  |= note: `#[deny(arithmetic_overflow)]` on by default

warning: `datetime-util`(bin "rssh3") generated 4 warnings
error: could not compile `datetime-util` due to previous error;4 warnings emitted

本文转载自: https://blog.csdn.net/rustwei/article/details/132490141
版权归原作者 大怀特 所有, 如有侵权,请联系我们删除。

“Rust安全之数值”的评论:

还没有评论