ruby Enumerator::lazy
当一个很大的数组或集合需要做循环操作的时候,一次性把数据放到内存会有很大弊端。这时lazy就派上用场了。
Float::INFINITY 是无穷大意思
举个例子 取出1到无穷大对7整除余数为0的前10个数值。
(1..Float::INFINITY).select { |x| x % 7 == 0 }.take(10).to_a
这样写的话会直接卡死,这个时候用lazy
(1..Float::INFINITY).lazy.select { |x| x % 7 == 0 }.take(10).to_a
同样,当我们操作一个很大的文件时,直接做each_line操作会把整个文件都放到内存里。
file = File.open('xxxx', 'r') file.each_line.select { |row| row.xxx }
用lazy方法会逐步加载文件。
file = File.open('xxxx', 'r') file.each_line.lazy.select { |row| row }
关于Enumerator::lazy 详细用法:
https://railsware.com/blog/2012/03/13/ruby-2-0-enumerablelazy/
转载于:https://www.cnblogs.com/wangyuyu/p/7490130.html
ruby Enumerator::lazy相关推荐
- Ruby Enumerator的各种迭代
Enumerator迭代 Mix-in Enumerator获得的迭代方法: each_cons: each_slice: each_with_index: with_index: each_with ...
- 101 Ruby Code Factoids
101 Ruby Code Factoids 0) 'methods' method Since almost everything in Ruby is an Object you can type ...
- RubyConfChina2012, 迟来的博文, 附部分讲师的PPT
这篇一直躺在evernote里, 时隔一个月放出来, 迟来的博文. Matz , Ruby语言创始人. 松本行弘 平生有如此的机会, 能够见到如此伟大的语言设计师, 能够听他现场布道, 感受cod ...
- Ruby之Enumerator类
今天发现了Ruby1.8.6和 Ruby1.9.2的一个不同之处,试运行以下代码: require 'find'puts Find.find("./data").class 在Ru ...
- Ruby 函数式编程
Ruby 函数式编程 by Arnau Sanchez 本文档翻译自 Arnau Sanchez (tokland)所编译的这份文档 RubyFunctionalProgramming. 同时也有日文 ...
- 《Ruby程序员修炼之道》(第2版)目录—导读
版权 Ruby程序员修炼之道(第2版) • 著 [美] David A. Black 译 钟凤鸣 陈雪静 责任编辑 杨海玲 • 人民邮电出版社出版发行 北京市丰台区成寿寺路11号 邮编 100164 ...
- Ruby: 延迟计算与优化
Ruby 的延迟计算大家已经用得很多了, 下面就是一个范例 class ApplicationControllerdef current_user@current_user ||= User.wher ...
- react 日历组件_anujs1.5.1支持React.Suspense与lazy
React16是一个实验版本,除了测试它的新fiber架构外,还添加了大量新功能.其他React.Suspense与React.lazy就是重磅中的重磅. 随着前端的APP化,不断集成功能,页面越来越 ...
- ruby hash方法_Ruby中带有示例的Hash.select方法
ruby hash方法 哈希选择方法 (Hash.select Method) In this article, we will study about Hash.select Method. The ...
最新文章
- wps文档复制粘贴序号_10个文档处理神技能,学会让你少走很多弯路!
- ionic 获取input的值
- Object C学习笔记12-集合
- 如何确认与服务器偏差_货架如何正确验收
- 【参会指南】神策 2020 数据驱动用户大会,10 月 13 日将重磅开幕!
- 【学亮IT手记】SpringMVC增删改查+map数据返回Controller层代码示例
- 计算机导论中的名词解释,计算机导论期末考试试题及答案
- Java高级开发面试,java字符串拼接的方法
- DMA及cache一致性的学习心得
- python print用法不换行_python3让print输出不换行的方法
- (自定义组件)通用- X轴横向:溢出滚动 (含代码)- 案例篇
- 使用画图软件gunplot出现的问题和解决办法
- c++语言计算2的n次方,2的N次方
- Chrome浏览器介绍
- chrome浏览器怎么把整个网页截图保存
- 电子邮箱邮件安全使用技巧,公司电子邮件安全使用总结
- 微信小程序navigate标签
- 中国移动NBIOT卡的几种APN应用场景
- 关于构造和二进制,题目:牛牛的DRB迷宫Ⅱ(源自牛客竞赛2020年寒假集训)
- 坚持真理的艰辛——罗巴切夫斯基创立非欧几何的艰难历程