加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

是否可以使用Ruby在两行中编写单个语句for循环?

发布时间:2020-12-17 01:51:07 所属栏目:百科 来源:网络整理
导读:通常在使用 Ruby进行编程时,我会发现自己正在编写一个小的for循环,并在正文中使用单个语句.例如… for number in 1..10 puts numberend 在其他语言中,例如C,Java或Kotlin(例如),我可以用两行编写相同的代码.例如… // Kotlinfor (number in 1..10) println(n
通常在使用 Ruby进行编程时,我会发现自己正在编写一个小的for循环,并在正文中使用单个语句.例如…

for number in 1..10
  puts number
end

在其他语言中,例如C,Java或Kotlin(例如),我可以用两行编写相同的代码.例如…

// Kotlin
for (number in 1..10)
    println(number)

在上面的示例中,由于缺少花括号而推断出循环体的结尾.

Ruby有没有办法模仿“for loop”的“单一语句”风格?

以下是[我的选项/您的潜在回复],以及我对它们的看法.

>

You could append ; end to the body to end it on the same line.

这是真的,而且非常充足,但我想知道是否有更惯用的方法.
>

This seems unnecessarily picky. Why would you ever want to do this?

你可能会认为我太挑剔了.您也可能认为我想要做的事情是非惯用的(如果这甚至是一个词).我完全理解,但我仍然想知道它是否可行!

这样做可以让我们编写的代码甚至可以更好地阅读.对于程序员来说,可读性至关重要.

解决方法

当然,在这个特殊情况下,你正在寻找每个 Range#each

(1..10).each { |number| puts number }

对于更复杂的迭代,使用do-end块语法.例如

(1..10).each do |number|
  puts number
  some_method_call(number)
  Rails.logger.info("The #{number} is used")
  something_else
end

要查找更多信息,请查看Ruby documentation,特别参见Enumerable.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读