如何在 Rust 中使用 BigInt 或 BigUint 生成一系列值?

use*_*074 4 iterator bignum ownership rust

我想循环遍历具有BigUint类型(来自num板条箱)的一系列值。

我怎样才能做到这一点?

我试过

for i in 0..a {...}
Run Code Online (Sandbox Code Playgroud)

其中a是(借用的)BigUint类型。我收到有关整数类型不匹配的错误,因此我尝试了以下方法:

for i in Zero::zero()..a {...}
Run Code Online (Sandbox Code Playgroud)

但根据是否a借用,我会得到不同的错误。如果a是借用的,那么我会在错误中得到这个:

for i in 0..a {...}
Run Code Online (Sandbox Code Playgroud)

如果 a 不是借用的,则错误如下:

|    for i in Zero::zero()..(a) {
|             ^^^^^^^^^^^^^^^^^ the trait `std::iter::Step` is not implemented for `num::BigUint`
Run Code Online (Sandbox Code Playgroud)

Leś*_*ajs 5

num由于Trait的不稳定Step,板条箱中似乎尚未支持此功能。

您可以做的就是使用num-itercrate 及其范围函数。

use num::BigUint;

fn main() {
    for i in num_iter::range_inclusive(BigUint::from(0u64), BigUint::from(2u64)) {
        println!("{}", i);
    }
}
Run Code Online (Sandbox Code Playgroud)