i具有实现num::Integer
特征的通用类型T
。我可以编写一个基于T
的范围迭代器,其中e
代表类型T
的另一个值表示范围的上限:
num::iter::range(T::one(), e)
令人讨厌的是它必须是有限的。我如何拥有无限范围?对于原始类型,我可以做类似(1..)
的事情。我可以做诸如num::iter::range(T::one(), T::infinity())
之类的事情吗?
我找不到在num::iter
中执行此功能的函数。我希望之后能够调用功能样式功能,例如map
,filter
等...
这听起来像是loop
的用例,而不是范围。
编辑:不幸的是, std::ops::RangeFrom
是一个结构,而不是像 std::ops
中的infix操作员的特征。所以这是错误的,但是由于它已被接受,所以我无法删除它。
原始帖子:您可以实现std :: ops :: Rangefrom for您的类型。这是仅具有下限的范围语法的基础特征,例如1..
。