作爲一名Ruby程序員,您是否覺得任何時候使用哪種功能都有點冒險,可能是因爲它有奇怪的行爲?它可能有很好的文檔記錄,但很難在調試時發現,或難以記憶?使用風險很大的Ruby功能
我一般儘量遠離String#gsub!
。該文檔說「執行替換字符串#gsub到位,返回str或無如果沒有替換執行。」所以如果沒有東西可以替代,那麼它會返回零。實際上,我沒有看到任何有用的用例。
那麼,有了你的經驗,還有什麼你想補充的嗎?
作爲一名Ruby程序員,您是否覺得任何時候使用哪種功能都有點冒險,可能是因爲它有奇怪的行爲?它可能有很好的文檔記錄,但很難在調試時發現,或難以記憶?使用風險很大的Ruby功能
我一般儘量遠離String#gsub!
。該文檔說「執行替換字符串#gsub到位,返回str或無如果沒有替換執行。」所以如果沒有東西可以替代,那麼它會返回零。實際上,我沒有看到任何有用的用例。
那麼,有了你的經驗,還有什麼你想補充的嗎?
在lambda
,Proc
或塊中使用return
。語義are well defined,但你會得到它的錯誤,你會得到一個LocalJumpError
。
Ruby的元編程功能可以非常危險的方式使用。我看到了一些嘗試運行的代碼 - 重新定義了像String或者Array這樣的代碼類的常用方法,雖然我可以看到這可以被一個小的臨時腳本接受,但我認爲這不是一個好主意具有許多依賴關係的複雜應用程序或許多維護者。
throw
/catch
(不一樣的begin
/rescue
!)基本上是GOTO
,而且可避免被認爲是任何語言使用的危險功能。
+0使用「考慮」沒有「有害」。 – 2011-04-28 00:12:41
'gsub!'_如果不進行替換,將不會用'nil'覆蓋字符串值。它只會_return_'nil'。 – 2011-04-27 18:21:29
'!?!'作爲'false'關鍵字的替代物) – 2011-04-27 18:25:50
'%space \ as \ a \ quote \ character' – 2011-04-27 18:26:43