如何在Rust中定义通用整数类型的无限范围?

时间:2019-05-11 23:43:54

标签: rust iterator

我有一个通用类型T,它实现了num::Integer特征。我可以编写一个基于T的范围迭代器,其中e代表另一个类型T的值,表示范围的上限:

num::iter::range(T::one(), e)

恼人的是,它必然是有界的。我如何才能拥有无限范围?对于基本类型,我可以做类似(1..)的事情。我可以做类似num::iter::range(T::one(), T::infinity())的事情吗?

num::iter中找不到执行此操作的函数。我希望以后可以调用功能样式函数,例如mapfilter等...

2 个答案:

答案 0 :(得分:-1)

这听起来像是loop的用例,而不是范围。

答案 1 :(得分:-2)

编辑::不幸的是,for是一个结构,而不是特征,例如std::ops::RangeFrom中中缀运算符的特征。因此,这是错误的,但是由于已被接受,因此无法删除它。

原始帖子:您可以为自己的类型实施std::ops::RangeFrom。这是范围语法仅具有下限的特征,例如std::ops