Как я могу сделать диапазон значений, используя BigInt или BigUint в Rust? - PullRequest
2 голосов
/ 23 июня 2019

Я хотел бы просмотреть диапазон значений, имеющих тип BigUint (из ящика num).

Как я могу это сделать?

Я пытался

for i in 0..a {...}

, где a является (заимствованным) BigUint типом.Я получил ошибку о несовпадающих целочисленных типах, поэтому я попробовал это вместо:

for i in Zero::zero()..a {...}

Но я получаю разные ошибки в зависимости от того, заимствован ли a или нет.Если a заимствовано, тогда я получаю это в ошибках:

|    for i in Zero::zero()..(a) {
|             ^^^^^^^^^^ the trait `num::Zero` is not implemented for `&num::BigUint`

Если a не заимствовано, то это ошибка:

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

1 Ответ

3 голосов
/ 23 июня 2019

Кажется, это еще не поддерживается в ящике num из-за нестабильности Step черты .

Что вы можете сделать, это использовать num-iter ящик с функциями диапазона.

use num::BigUint;

fn main() {
    for i in num_iter::range_inclusive(BigUint::from(0u64), BigUint::from(2u64)) {
        println!("{}", i);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...