在Rust中(与大多数编程语言一样),%运算符执行余数运算,而不是模运算.这些操作对负数有不同的结果:
-21 modulus 4 => 3
-21 remainder 4 => -1
Run Code Online (Sandbox Code Playgroud)
println!("{}", -21 % 4); // -1
Run Code Online (Sandbox Code Playgroud)
但是,我想要模数.
我找到了一个解决方法((a % b) + b) % b,但如果已有功能,我不想重新发明轮子!