加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 将枚举器转换为惰性枚举器

发布时间:2020-12-17 04:23:10 所属栏目:百科 来源:网络整理
导读:可以像这样使用 Enumerator::Lazy.new将枚举器转换为惰性枚举器(这是一个示例;在开始时,我已经有一个枚举器,而不是一个数组): xs_enum = [1,2,3].to_enum# = #Enumerator: [1,3]:eachxs_lazy_enum = Enumerator::Lazy.new(xs_enum,:yield)# = #Enumerator::
可以像这样使用 Enumerator::Lazy.new将枚举器转换为惰性枚举器(这是一个示例;在开始时,我已经有一个枚举器,而不是一个数组):
xs_enum = [1,2,3].to_enum
# => #<Enumerator: [1,3]:each>
xs_lazy_enum = Enumerator::Lazy.new(xs_enum,&:yield)
# => #<Enumerator::Lazy: #<Enumerator: [1,3]:each>:each>
xs_lazy_enum.force
# => [1,3]

有更简洁的方法吗?

解决方法

关于什么:
[1,3].to_enum.lazy
# => #<Enumerator::Lazy: ...>

Indeed,but the problem is that I start from an enumerator,not from an array

这不会改变任何事情:

enum = (1..10).each
# => #<Enumerator: ...>
enum.lazy
# => #<Enumerator::Lazy: ...>

可枚举#to_enum返回一个枚举器.如果将一个调用链接到Enumerable #lazy,则第二个消息的接收者是第一个调用返回的Enumerator.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读