Fix typo in arithmetic-overflow.md

pull/446/head
lijinpeng 3 years ago
parent 4d9638fe8e
commit 7a740fc55c

@ -1,13 +1,13 @@
# 算术溢出导致的panic
在Rust中溢出后的数值被截断是很正常的:
Rust 中,溢出后的数值被截断是很正常的:
```rust
let x: u16 = 65535;
let v = x as u8;
println!("{}", v)
```
最终程序会输出`255`, 因此大家可能会下意识地就觉得算数操作在Rust中只会导致结果的不正确并不会导致异常。但是实际上如果是因为算术操作符导致的溢出就会让整个程序panic:
最终程序会输出`255`, 因此大家可能会下意识地就觉得算数操作在 Rust 中只会导致结果的不正确,并不会导致异常。但是实际上,如果是因为算术操作符导致的溢出,就会让整个程序 panic:
```rust
fn main() {
let x: u8 = 10;
@ -22,7 +22,7 @@ fn main() {
thread 'main' panicked at 'attempt to add with overflow', src/main.rs:5:13
```
那么当我们确实有这种需求时该如何做呢可以使用Rust提供的`checked_xxx`系列方法:
那么当我们确实有这种需求时,该如何做呢?可以使用 Rust 提供的`checked_xxx`系列方法:
```rust
fn main() {
let x: u8 = 10;
@ -54,9 +54,9 @@ pub fn working_items_per_minute(speed: u8) -> u32 {
}
```
上述代码中,`speed * cph`就会直接panic:
上述代码中,`speed * cph`就会直接 panic:
```console
thread 'main' panicked at 'attempt to multiply with overflow', src/main.rs:10:18
```
是不是还藏的挺隐蔽的因此大家在Rust中做数学运算时要多留一个心眼免得上了生产才发现问题所在。或者你也可以做好单元测试:)
是不是还藏的挺隐蔽的?因此大家在 Rust 中做数学运算时,要多留一个心眼,免得上了生产才发现问题所在。或者,你也可以做好单元测试:)
Loading…
Cancel
Save