在Rust中实现整数范围的惯用方式是什么?

6
在Ada编程语言中,可以使用范围约束来声明有符号整数的值必须在最小值和最大值之间。如果不是,则会触发异常,例如example
在Rust中实现这一点的惯用方式是什么?

@ChayimFriedman 谢谢!那很有帮助,但并没有真正解决我的问题。不过,这个 crate 可能会有用:https://docs.rs/ranged_integers/latest/ranged_integers/ - sith
这里还有一个有趣的讨论:https://internals.rust-lang.org/t/more-on-ranged-integers/8614 - sith
2
请注意(在Ada方面),范围出现在许多地方:数组边界,for循环,case语句等。它们也参与编译时检查,并在安全时删除运行时检查。 - Zerte
2
Zerte的观点至关重要...当检查可以在编译时进行时,这不应涉及运行时检查(可能且安全地)。如果一个数组和一个循环共享一个范围,那么将无法从数组索引出来(Heartbleed)。Rust版本能够接近其效率和安全性吗? - user1818839
1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接