我有一个通用类型T
,它实现了num::Integer
特征。我可以编写一个基于T
的范围迭代器,其中e
代表另一个类型T
的值,表示范围的上限:
num::iter::range(T::one(), e)
恼人的是,它必然是有界的。我如何才能拥有无限范围?对于基本类型,我可以做类似(1..)
的事情。我可以做类似num::iter::range(T::one(), T::infinity())
的事情吗?
在num::iter
中找不到执行此操作的函数。我希望以后可以调用功能样式函数,例如map
,filter
等...
答案 0 :(得分:-1)
这听起来像是loop
的用例,而不是范围。
答案 1 :(得分:-2)
编辑::不幸的是,for
是一个结构,而不是特征,例如std::ops::RangeFrom
中中缀运算符的特征。因此,这是错误的,但是由于已被接受,因此无法删除它。
原始帖子:您可以为自己的类型实施std::ops::RangeFrom。这是范围语法仅具有下限的特征,例如std::ops
。