In Rust (like most programming languages), the %
operator performs the remainder operation, not the modulus operation. These operations have different results for negative numbers:
-21 modulus 4 => 3
-21 remainder 4 => -1
println!("{}", -21 % 4); // -1
However, I want the modulus.
I found a workaround ((a % b) + b) % b
, but I don't want to reinvent the wheel if there's already a function for that!
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…