有没有更红宝石般的方式来做到这一点?

时间:2011-02-16 14:45:15

标签: ruby

我从昨天晚上开始学习Ruby。

这是我制作的一种方法,可以打印出任意数量的倍数。

def DisplayMultiples(multiplesOf, count)
  i = multiplesOf
  while i <= count
    if i % multiplesOf == 0
      puts i
    end
    i += 1
  end
end

有关如何将代码改进为更符合Ruby风格的代码的任何建议?我来自C#背景,所以我想稍微改变一下。

修改

在哪里可以找到方法/类的文档?例如,我收到的第一个答案使用了.times方法(它是一种方法吗?)。我无法找到相关文档,因为我不知道它是什么类型,因为Ruby没有类型。

有什么建议吗?

4 个答案:

答案 0 :(得分:4)

我会这样做:

def display_multiples(multiplesOf, count)
  count.times {|x| puts x * multiplesOf }
end

答案 1 :(得分:2)

def display_multiples(number, limit)
  0.step(limit, number){|n| puts n}
end

答案 2 :(得分:1)

def display_multiples(multiplesOf, count)
  (count/multiplesOf).times {|x| puts (x+1) * multiplesOf }
end

关于文档,请参阅ruby-doc.orggotapi.com

答案 3 :(得分:0)

def display_multiples(of,nb)
  p (of..of*nb).step(of).to_a
end

display_multiples(3,5) #display [3, 6, 9, 12, 15]