【发布时间】:2017-05-12 07:34:14
【问题描述】:
在使用 Ruby 进行编程时,我发现自己经常编写小的 for 循环,主体中只有一条语句。比如……
for number in 1..10
puts number
end
在其他语言中,例如C、Java 或Kotlin(例如),我可以用两行编写相同的代码。比如……
// Kotlin
for (number in 1..10)
println(number)
在上面的例子中,循环体的结尾是由于缺少花括号而推断出来的。
Ruby 有没有办法模仿这种“单语句”风格的“for 循环”?
以下是一些 [我的选择/您可能的回复],以及我对它们的看法。
-
您可以将
; end附加到正文以在同一行结束。这是真的,也足够了,但我想知道是否有更惯用的方法。
-
这似乎是不必要的挑剔。为什么你会想要这样做?
你可能觉得我太挑剔了。您可能还认为我正在尝试做的事情是不习惯的(如果那只是一个词)。我完全理解,但我仍然很想知道它是否可行!
这样做可以让我们编写甚至只是一点点更易于阅读的代码。对于程序员来说,可读性很重要。
【问题讨论】:
-
臭名昭著的“goto fail”功能。
-
@Stefan 我认为 heartbleed 也有类似的问题,即缺少花括号。我工作的最后一家公司要求他们在那里。不过,我喜欢排除它们的短暂性,而且我做 TDD,所以我不太可能被这样的意外错误抓住。