Enumerable#cycle 是如何工作的? (红宝石)

发布于 2024-08-28 09:14:47 字数 735 浏览 8 评论 0原文

looper = (0..3).cycle
20.times { puts looper.next }

我能找到 3 个中的下一个吗?我的意思是,如果我可以在任何给定时间获取任何特定元素的 .next 。不仅仅是显示从第一个元素开始的循环。

更新

当然,我通过了 ruby​​ doc< /a> 在发布我的问题之前。但我在那里没有找到答案...

UPDATE2

输入

looper = (0..max_cycle).cycle

max_cycle > = 每次脚本运行时都可以不同的变量

looper = 始终来自间隔 (0..max_cycle) 的变量,但脚本启动时的当前值可以是任意值。它基于 Time.now.hour

output

我想随时知道 looper.next 值在脚本运行期间

looper = (0..3).cycle
20.times { puts looper.next }

can I somehow find the next of 3? I mean if I can get .next of any particular element at any given time. Not just display loop that starts with the first element.

UPDATE

Of course I went though ruby doc before posting my question. But I did not find answer there ...

UPDATE2

input

looper = (0..max_cycle).cycle

max_cycle = variable that can be different every time the script runs

looper = variable that is always from interval (0..max_cycle) but the current value when the script starts could be any. It is based on Time.now.hour

output

I want to know .next value of looper at any time during the running time of the script

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

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

发布评论

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

评论(2

勿挽旧人 2024-09-04 09:14:55

你的问题不是很清楚。也许你想要这样的东西?

(current_value + 1) % (max_cycle + 1)

例如,如果 max_cycle = 3 您将得到以下输出:

current_value    returns
      0             1
      1             2
      2             3
      3             0

Your question is not very clear. Maybe you want something like this?

(current_value + 1) % (max_cycle + 1)

If, for example, max_cycle = 3 you will have the following output:

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