关于红宝石范围?

发布于 2024-08-27 15:29:26 字数 196 浏览 10 评论 0原文

像这样

range = (0..10)

我怎样才能得到这样的数字:

0 5 10 

每次加五但小于10

如果范围=(0..20)那么我应该得到这个:

0 5 10 15 20

like this

range = (0..10)

how can I get number like this:

0 5 10 

plus five every time but less than 10

if range = (0..20) then i should get this:

0 5 10 15 20

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

嘿嘿嘿 2024-09-03 15:29:26

尝试使用 .step() 进行通过给定的步骤。

(0..20).step(5) do |n|
    print n,' '
end

给出...

0 5 10 15 20

正如 dominikh 所提到的,您可以在末尾添加 .to_a 以获得数字列表的可存储形式:(0..20).step(5)。 to_a

Try using .step() to go through at a given step.

(0..20).step(5) do |n|
    print n,' '
end

gives...

0 5 10 15 20

As mentioned by dominikh, you can add .to_a on the end to get a storable form of the list of numbers: (0..20).step(5).to_a

落花随流水 2024-09-03 15:29:26

就像戴夫说的,但添加到_a:

(0..20).step(5).to_a # [0, 5, 10, 15, 20]

Like Dav said, but add to_a:

(0..20).step(5).to_a # [0, 5, 10, 15, 20]
电影里的梦 2024-09-03 15:29:26

http://ruby-doc 中描述的 step 方法。 org/core/classes/Range.html 应该可以完成这项工作,但严重损害 可能会损害可读性。

考虑一下:

(0..20).step(5){|n| print ' first ', n }.each{|n| print ' second ',n }

您可能会认为步骤(5)会产生一个新的范围,就像 Why_问题最初的意图一样。但是,如果您想“重用”0-5-10-15-20 范围,则每个都会在 (0..20) 上调用,并且必须由另一个步骤(5) 替换。

也许您会可以使用类似 (0..3).map{|i| 的东西我*5}

但是坚持步骤方法的结果.to_a也应该可以正常工作

The step method described in http://ruby-doc.org/core/classes/Range.html should do the job but seriously harms may harm the readability.

Just consider:

(0..20).step(5){|n| print ' first ', n }.each{|n| print ' second ',n }

You may think that step(5) kind of produces a new Range, like why_'s question initially intended. But the each is called on the (0..20) and has to be replaced by another step(5) if you want to "reuse" the 0-5-10-15-20 range.

Maybe you will be fine with something like (0..3).map{|i| i*5}?

But "persisting" the step method's results with .to_a should also work fine.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文