Re: [請益] 很多層迴圈和if 怎麼寫比較好整理

看板Soft_Job作者 (人很好那一個)時間13年前 (2011/07/16 23:47), 編輯推噓1(109)
留言10則, 4人參與, 最新討論串13/16 (看更多)
※ 引述《Ting1024 (無)》之銘言: : ※ 引述《qrtt1 (null)》之銘言: : : 這樣就可以使用 early break/return 的方式 : : 也就是版友 ronnywang 建議的部分。 : 善用 condition , return 的方法是很方便解決 : 太多層判斷的問題 : 不過很多的書籍,一直強調函示不要「中途返回」 : 各位認為呢? : 其實goto也不錯,只要能取一個不錯的目的地名稱, : 會有一針見血的效果 XD 當程式複雜到某一個程度,會面臨memleak的問題。 func() { new a1 new a2 new a3 out3: del a3 out2: del a2 out1: del a1 return ret } 這樣的作法有點像一些離開scope自動unref的語言。 好處是可以降低思考如何避開memleak的過程。 而中途離開....應該會破壞這樣的結構(我猜想的) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.233.130

07/16 23:59, , 1F
linux kernel裡面大量使用這種方法
07/16 23:59, 1F

07/17 09:34, , 2F
同樣的問題在多執行緒程式會出現,例如 pthread 的
07/17 09:34, 2F

07/17 09:35, , 3F
lock/unlock 配對被破壞的問題。真的要小心>"<
07/17 09:35, 3F

07/17 09:52, , 4F
這個手法在處理例外發生也常用到。比較好奇的是,好像沒看
07/17 09:52, 4F

07/17 09:53, , 5F
過有人對甚麼out3、out2做管理。也許是因為這種手法大部分
07/17 09:53, 5F

07/17 09:54, , 6F
用於某個local function,因此不需要做管理。
07/17 09:54, 6F

07/17 11:28, , 7F
在有smart pointer機制時,什麼情況下會需要用到這種手法呢?
07/17 11:28, 7F

07/17 12:20, , 8F
大多數的情況,用smart_pointer應該就足以應付這類情形
07/17 12:20, 8F

07/17 12:21, , 9F
正常如果一個函式裡面有許多複雜運算,也不會有人會想用一
07/17 12:21, 9F

07/17 12:22, , 10F
組template就搞定的。如果有,可能我說的東西就有價值。
07/17 12:22, 10F
文章代碼(AID): #1E8R9qdp (Soft_Job)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 13 之 16 篇):
文章代碼(AID): #1E8R9qdp (Soft_Job)