c = 5
until c == 0 do
print c
c -= 1
end
打破
c = 5
until c == 0
print c
c -= 1
end
有什么区别?
两者都显示为输出。
最佳答案
do
是可选的。它指示要重复执行的代码块的开头。
在你的例子中没有区别。但是,如果尝试在一行中重新编写代码,则可以看到为什么需要:
c = 5
until c == 0 do print c; c -= 1 end
# 54321 => nil
现在试试这个不
do
:c = 5
until c == 0 print c; c -= 1 end
# SyntaxError: (irb):115: syntax error, unexpected tIDENTIFIER, expecting keyword_do_cond or ';' or '\n'
如您所见,block没有明确的开头,ruby将抛出一个
SyntaxError
。关于ruby - Ruby中的`until`和`until do`循环有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30485280/