我正在尋找一個跳過執行when
塊的語句,類似於break
for循環。這可能嗎?在ruby的case/when語句中,「break」等價嗎?
我想避免的是像一個結構:
case n
when 1
if valid
foo.bar
end
when 2
if valid
foo.foo
end
更加理想的代碼塊看起來像:
case n
when 1
break unless valid
foo.bar
when 2
break unless valid
foo.foo
end
顯然,break
不起作用。
我認爲你的設計有問題。你的代碼中甚至不應該有這麼大的'case'語句。也許你可以使用字典將'n'的值映射到一個函數來調用或者什麼。如果您使用了一個更具體的示例來展示您的真實問題,我們可以提供更多幫助。這可能是codereview.SE的情況,儘管 –
我試圖解析一個日誌文件。各種'when'語句代表正則表達式,我想檢查這條線。問題在於我可能不得不忽略一些行,這取決於某些條件(在前面的例子中是'valid')。 – nTraum
我不明白是什麼使你的例子中使用break的版本更可取。 – sepp2k