我想以下情況下使用紅寶石(ROR)代碼:Ruby 1.8.7中如何轉到特定的行或條件?
line no: 09
line no: 10 if(@yyyyy == nil)
line no: 11 do some operation here
line no: 12 then goto line no 10
line no: 13 end
l
我next
,break
,& goto
嘗試過,但沒有什麼工作。
是否有任何關鍵字/聲明來完成我的場景?
我想以下情況下使用紅寶石(ROR)代碼:Ruby 1.8.7中如何轉到特定的行或條件?
line no: 09
line no: 10 if(@yyyyy == nil)
line no: 11 do some operation here
line no: 12 then goto line no 10
line no: 13 end
l
我next
,break
,& goto
嘗試過,但沒有什麼工作。
是否有任何關鍵字/聲明來完成我的場景?
Ruby默認不支持它,而且,如果您要將代碼提交到http://codereview.stackoverflow.com,我相信他們會幫助您重寫/重構代碼。
您可以使用redo
命令來模擬你想要的。 「編程紅寶石」說:
重做從頭重複循環的當前迭代,但不重新評估條件或獲取下一個元素(在迭代器中)。
這就是說,「The Joke Is On Us: How Ruby 1.9 Supports the Goto Statement」將讓您深入瞭解實際使用「轉到」使用Ruby,不過,在這一點上,你的代碼將不會在一個「股票」紅寶石便攜式或使用。
對不起,我忘了加我的紅寶石版本。我需要使用Ruby 1.8.7 – Prince
請做檢查以下網址:
http://patshaughnessy.net/2012/2/29/the-joke-is-on-us-how-ruby-1-9-supports-the-goto-statement
按照許多專家程序員,使用goto語句是一種不好的做法。
來做到這一點對不起,我忘了添加我的紅寶石版本。我需要使用Ruby 1.8.7來做到這一點 – Prince
catch :foo do
for (aaa in @xxxxx)
if(@xxxxx == nil)
do some operation here
throw :foo
end
for (bbb in @yyyyy)
if(@yyyyy == nil)
do some operation here
throw :foo
end
end
for (ccc in @zzzzz)
if(@zzzzz == nil)
do some operation here
throw :foo
end
end
end
end
使用goto語句被認爲是一個壞的編程習慣 –