首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ruby中实现循环的最聪明、最有效的方法

在Ruby中实现循环的最聪明、最有效的方法
EN

Stack Overflow用户
提问于 2011-01-12 02:03:29
回答 4查看 3.7K关注 0票数 1

我想知道是否有任何优雅的方式来实现以下方法的循环。我只能想出一个常规的while循环(Java程序员)作为以下伪代码:

代码语言:javascript
复制
while x<10       
  search = Google::Search::Web.new()
  search.query = "china"
  search.start = x
end

有人知道更好的方法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-12 02:07:26

你想做这样的事情吗?

代码语言:javascript
复制
(1..9).each do |i|
    search = Google::Search::Web.new()
    search.query = "china"
    search.start = i
end

这将使用start at 1运行查询,然后从2开始,一直向上到91..9语法是一个范围,两端都包含。

更新:(1..9).each可能是ruby中最惯用的方式,但Jonas Elfström发布了一个很酷的链接,快速演示了一些替代方法:

http://alicebobandmallory.com/articles/2010/06/21/a-simple-loop

票数 3
EN

Stack Overflow用户

发布于 2011-01-12 02:16:35

有许多替代方案:

代码语言:javascript
复制
# Will go 0..9
10.times do |i|
  search = Google::Search::Web.new()
  search.query = "china"
  search.start = i
end

# Will go 1..10
1.upto(10) do |i|
  search = Google::Search::Web.new()
  search.query = "china"
  search.start = i
end

# Will go 1..10
(1..10).each do |i|
  search = Google::Search::Web.new()
  search.query = "china"
  search.start = i
end
票数 9
EN

Stack Overflow用户

发布于 2011-01-12 02:16:46

代码语言:javascript
复制
10.times do |i|
    search = Google::Search::Web.new()
    search.query = "china"
    search.start = x
loop

整数具有times方法,该方法接受一个块并循环n次,其中n是数字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4660956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档