如何在Rust中使用BigInt或BigUint生成一系列值?
我想从num板条箱循环一系列具有BigUint类型的值 我该怎么做 我试过了如何在Rust中使用BigInt或BigUint生成一系列值?,rust,iterator,ownership,bignum,Rust,Iterator,Ownership,Bignum,我想从num板条箱循环一系列具有BigUint类型的值 我该怎么做 我试过了 for i in 0..a {...} 其中a是借用的BigUint类型。我遇到了一个关于不匹配整数类型的错误,因此我尝试了以下方法: for i in Zero::zero()..a {...} 但根据a是否被借用,我会得到不同的错误。 如果a是借来的,那么我在错误中得到: |对于零中的i::零..a{ |^^^^^^^^ `&num::BigUint未实现特性'num::Zero'` 如果未借用,则这是错误:
for i in 0..a {...}
其中a是借用的BigUint类型。我遇到了一个关于不匹配整数类型的错误,因此我尝试了以下方法:
for i in Zero::zero()..a {...}
但根据a是否被借用,我会得到不同的错误。
如果a是借来的,那么我在错误中得到:
|对于零中的i::零..a{
|^^^^^^^^ `&num::BigUint未实现特性'num::Zero'`
如果未借用,则这是错误:
| for i in Zero::zero()..(a) {
| ^^^^^^^^^^^^^^^^^ the trait `std::iter::Step` is not implemented for `num::BigUint`
由于以下原因,num板条箱中似乎还不支持此功能 你可以做的是使用板条箱的范围功能
use num::BigUint;
fn main() {
for i in num_iter::range_inclusive(BigUint::from(0u64), BigUint::from(2u64)) {
println!("{}", i);
}
}
有趣的是,Step-trait是如何不稳定的?@user668074-stable并不意味着它有bug或不能正常工作,它只是意味着设计可能仍然会改变,因此它只能在每晚的Rust构建中使用,而不承担向后兼容性的负担。Rust团队不会急于稳定新的API,因为很难实现如果第一次设计不正确,请稍后更改它们。@PeterHall,啊,我明白了。很高兴知道。希望它很快就能正确实现。