我有一個方法如下:如何擺脫case語句的紅寶石
def something(param)
case param
when 1
break if <already executed for some similar data>
#Some code
when 2
#Some code
else
#Some code
end
end
如果param
是1
,我將創建數據庫的記錄。在這種情況下,我需要檢查相同的數據是否已經存在,如果有的話,我需要打出when
。
當我嘗試break if <condition>
,我得到這個錯誤:
Can't escape from eval with break
作爲一個解決方案,case語句之前,我可以改變param
的值,以便它(when 1
)從未滿足條件:
def something(param)
param = 0 if <condition>
case param
when 1
.
.
但我覺得它很醜。
break
是用來擺脫循環,但我需要在這裏它的一個等價物,像switch語句break。
a = 1
b = 1
case a
when 1
return if b == 1
p "Code Executed"
end
給我:
LocalJumpError: unexpected return
可能重複:http://stackoverflow.com/questions/8022865/how-to-break-out-of-a-case-while- in-ruby –
@LucasNelson嘿,盧卡斯。感謝您指點這篇文章。但是,請你看看我的編輯。 – Abhi
從答案中的評論,感覺就像你現在排序。 –