ruby - 是否可以在 map 中使用 while 或任意迭代器?
问题描述
i = 0
while i < 10 do
i += 1
end
有没有办法让它发出值 [1..10]?
例如:
ary = while (i < 10).map do
解决方案
有没有办法让它发出值?
我想使用while
[...]
我怀疑我是否理解你为什么要while
在 ruby 中使用,但是是的,如果你包装while
到一个Enumerator
实例中,这是可能的。
Enumerator.new do |y|
i = 0
while i < 10 do
i += 1
y << i
end
end.map { |i| i ** 2 }
#⇒ [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
推荐阅读
- reactjs - 如何将 ag-grid-react 包装到组件中?
- javascript - 如何从 jquery 范围滑块中获取值
- amazon-ec2 - 在 Jenkins 中使用 AWS 命令获取 EC2 实例的 CPU 利用率的最佳方法是什么
- javascript - Puppeteer 尝试加载延迟加载的图像失败
- security - 如果无法解析属性,ABAC PIP 应该怎么做?
- java - 如何将只读属性应用于 C: 目录中的所有 .docx 和 .pptx 文件?使用 java
- php - 如何排列以下数组?
- c# - 从单词列表中将多个单词替换为字符串中的其他单词
- sql - 插入中的VBA SQL错误
- postgresql - Postgresql - 不区分大小写的构建,允许所有 where、连接、分组等不区分大小写