作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我认为无限枚举器对于编写 FP 风格的脚本来说非常方便,但我还没有找到一种在 Ruby 中构建这种结构的舒适方法。
我知道我可以显式构造它:
a = Enumerator.new do |y|
i = 0
loop do
y << i += 1
end
end
a.next #=> 1
a.next #=> 2
a.next #=> 3
...
但是对于这样一个简单的结构来说,这太冗长了。
另一种方法是使用 Float::INFINITY
的“hack”:
b = (1..Float::INFINITY).each
b = (1..1.0/0.0).each
这两个可能是我能给出的最不笨拙的解决方案。虽然我想知道是否有其他更优雅的方式来构造无限枚举器。 (顺便说一句,为什么 Ruby 不直接将 inf
或 infinity
作为 Float::INFINITY
的文字?)
最佳答案
使用#to_enum或 #lazy转换你的 Range到Enumerable .例如:
(1..Float::INFINITY).to_enum
(1..Float::INFINITY).lazy
关于ruby - 在 Ruby 中表达无限枚举数 `(1..Inf)` 的常用快速方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26984082/
我是一名优秀的程序员,十分优秀!