Re: [討論] 寫三元判斷式code review被打槍
※ 引述《unixxxx (皓皓)》之銘言:
: 隨著語法的進步
: 很多會寫 code 的人都很少寫判斷式了
: 很多Javascript 高手都是用 switch 取代
好啦 假設不是反串 我覺得滿有道理的
但有一點其實你說錯了 其實並不是語法進步
之前學 Rust
覺得哇 pattern matching 真是他媽神 好潮喔
後來跑去學 OCaml 我才發現(Rust設計者是OCaml粉 一開始的compiler就是用OCaml寫)
阿幹 原來很多觀念 OCaml早就有了
編譯器/直譯器還會幫你檢查你的match是不是包含了所有的case
老實講寫ML真的會帶來很多跟C/C++不同的思維
所以與其說語法在進步 不如說在語法在逐漸把過去FP的東西搬進來
--
是說switch的效率到底有沒有比if else高啊?之前看人家測
試,超過3個選項的話,switch的效率比較好,但是之前跟別
人討論,他一直堅持if效率更好,不管幾個判斷
現在編譯器很發達,如果雙方僵持不下,我是建議直接看asm跟量效能 阿如果看不懂asm,代表程度還沒有到要吵這種效能的地步 我的經驗是branch misprediction的效能影響還比較嚴重 而且實務上也更容易遇到 現在編譯器已經發達到有些人寫C++都不用reference跟pointer O2 O3開下去速度照樣ㄅㄧㄤˋㄅㄧㄤˋ叫的地步
看你編譯跟執行環境
看asm也不夠準啦,寫的程式碼片段讓分支預測器或快取預抓
太好猜,那就會有虛假的跑分效應
辣個效能是能影響多少?有時間擔心 switch 跟 if else 的效
能差異,不如想想一些多層的 for 迴圈是不是必要…
普遍討論是多condition的情況下switch稍稍略優於if-else
但差異也很微小 與其在那邊爭哪個performance好 乖乖看情
境寫可讀性高的code還比較實際一點
全部都放進 embedded system 跑來看看。
switch有些語言改的很棒 結合lambda清爽很多
不用吵了,array lookup 比 switch case / if else 都快
switch 跟 if-else的速度在實際上真的有人在意嗎
寫MCU的人比較會在意吧.老闆要最便宜的MCU但是搞最多的
功能的時候...
我是聽朋友說在產線上每次都差一點點時間,累積起來就是
很多時間,當然有差
寫韌體的會在意阿
95
首Po小弟寫java的 以前常常寫三元判斷式 就比如說 String a; if(con) {18
三元不能用 算還好了 我還遇過 a=1; ... ...11
Code review 檢查這些會有點太花時間,應該有更重要的東西要看。 可以用一些 Gradle plugins 卡在 CI 比較省事: 1. Checkstyle 顧名思義檢查 style。 2. SpotBugs12
從 C++ 的角度來說 三元運算子有機會改變 l-value/r-value 的性質,進而破壞最佳化 舉個簡單例子 可以看到用三元運算子的時候,回傳區域變數竟然要 copy 而不是 move 雖然說 Java 沒有這些5
沒有 沒有什麼公認 要解決coding style 最好的辦法就是CTO大頭召集全部RD開會 把這間公司的coding style全都記下來8
這種事情 不就和阿里巴巴一樣 一開始給大家一本手冊 哪些code 或是哪些style在本公司不要出現1X
隨著語法的進步 很多會寫 code 的人都很少寫判斷式了 不管是三元還是 if else 寫太多的判斷式 如果….所以…否則…如果….則又…如果..24
說到switch,想來問問你各位公司的code style是下面哪種 (1) switch Var1 { case a: xxx9
"特定"情況下的確是好方式 舉個例子 以前我在調校能時候有用過這種方式 這是c#的code部分節錄 void Mem_w(ushort address, byte value) { if (address < 0x2000) NES_MEM[address & 0x7ff] = value;
20
Re: [問卦] 如何一句話證明自己C++很強有一天被同事叫去問 template<size_t... Ns> void apply_for(std::integer_sequence<size_t, Ns...>) { (apply(Ns),...); }20
Re: [問卦] C語言根本可以淘汰了吧?阿肥外商碼農阿肥啦, 會問這種問題的,麻煩去把恐龍本重讀或是去重修OS,現在一堆半路出家搞不清楚system library跟user application。 現代各種語言好用是建立在底層已經有人幫你鋪好路了,才會讓你們這些文組覺得好像寫 程式很簡單,結果遇到系統級的問題還是要理組來善後。當GC的實作不須要有人先實作好16
Re: [問卦] 會寫 x =x+1 的資工人 數學到底多糟阿??阿肥外商碼農阿肥啦!最近都在打DI沒空上線發廢文。 因為對於任何的program他的理解"="這個概念叫做assign,也就是我把原本的x加上1以後再 賦值給x,這東西在上升就是計算機哲學的定義了,你接受這套體系才有談下去的資格。 這個還延伸到lvalue跟rvalue的概念,如果你去寫 int x;4
Re: [請益] 記不住代碼,我的智商有問題嗎???放心啦 寫程式本來就不是靠記憶力 寫不知道幾年程式了 我連insert資料都還要確定一下語法長怎樣了 語法是本來就該揮發的東西