Re: [閒聊] 程式大師請進已回收

看板Marginalman作者 (動物園 公告)時間1年前 (2024/01/30 19:37), 1年前編輯推噓1(102)
留言3則, 3人參與, 1年前最新討論串36/38 (看更多)
現在才看到這一串 ※ 引述《surimodo (搖滾少女!! 活力棉花糖!!)》之銘言: : 如果有一個要大量 if else 的判斷式 : 你們會怎麼優化 : 完全符合 : 類似 : if 'A' == a: : doSomething() 如果是有規律的話就用規律解 例如他是a~z的話 可以直接-65就是陣列索引 var myv = 'c' // 'c' = 67 var doSths = [doSthA, doSthB, doSthC...]; doSths[myv - 65].invoke(); 如果沒有規律的話 可以拉一層出來 有需要我在簡單寫一個範例 ※ 引述《surimodo (搖滾少女!! 活力棉花糖!!)》之銘言: : 我看文章寫 : 如果 function 參數太多 : 可以用建構者模式封裝 : 舉例來說 : 本來是 function(a,b,c...) : 就變成 : user = UserBuilder.add(a).add(b) build() : function(user) : 這樣會比較好嗎 : 實務上感覺很少見 看過幾個作法 1.查詢取代臨時變數 2.拉一個型別出來 定義好再塞進去 例如 var style = new FontStyle style.size = 12 style.bold = true someText.setStyle(style) 3.Curry化 一個蠻奇特的技巧 不過這有點難解釋 4.你的function有問題 你的function有這麼多參數 八成有問題 建議重構 ※ 引述《Wardyal (我獨自升級 超級好看!)》之銘言: : 具體寫法就是 0000 0001 << f 去推 改用整數存就好了啊 要用<<去推通常是要記錄複數狀態 例如同時發生err 1跟err 5就可以用101紀錄 這樣一個變數可以同時存多個狀態 C#好像叫做enum flags 但如果錯誤只會單獨發生就完全沒這個必要 你直接把原本的變數就當整數用 例如 err = 9 他就會存成 0000 1001 8個bit理論上能存256個狀態 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.229.33 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1706614622.A.F98.html ※ 編輯: ZooseWu (114.32.229.33 臺灣), 01/30/2024 19:38:56

01/30 19:40, 1年前 , 1F
大師
01/30 19:40, 1F

01/30 19:43, 1年前 , 2F
大師
01/30 19:43, 2F

01/30 19:49, 1年前 , 3F
大師
01/30 19:49, 3F
文章代碼(AID): #1bkDzU-O (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1bkDzU-O (Marginalman)