中級 › attempt to subtract with overflow パニックの原因と直し方 › パターン5
attempt to subtract with overflow パニックの原因と直し方
符号なし整数(usizeなど)で0から1を引くような演算を行うと、負の値を表現できないため実行時にパニックします。
1 fn main() { 2 let buffer: Vec<i32> = vec![_]; ^ 3 let last_index = buffer.len() - 1; 4 println!("{}", last_index); 5 }
thread 'main' panicked at main.rs:3:22:
attempt to subtract with overflow
空欄を埋めて実行を通す
checked_subのような安全な引き算方法を使えば、パニックせずNoneとして失敗を扱えます。
次の問題