Re: [讨论] 写三元判断式code review被打枪

楼主: EricTCartman (阿ㄆㄧㄚˇ)   2022-12-18 20:59:28
※ 引述《unixxxx (皓皓)》之铭言:
: 随着语法的进步
: 很多会写 code 的人都很少写判断式了
: 很多Javascript 高手都是用 switch 取代
好啦 假设不是反串 我觉得满有道理的
但有一点其实你说错了 其实并不是语法进步
之前学 Rust
觉得哇 pattern matching 真是他妈神 好潮喔
后来跑去学 OCaml 我才发现(Rust设计者是OCaml粉 一开始的compiler就是用OCaml写)
阿干 原来很多观念 OCaml早就有了
编译器/直译器还会帮你检查你的match是不是包含了所有的case
老实讲写ML真的会带来很多跟C/C++不同的思维
所以与其说语法在进步 不如说在语法在逐渐把过去FP的东西搬进来
作者: qss05 (minami)   2022-12-18 23:48:00
是说switch的效率到底有没有比if else高啊?之前看人家测试,超过3个选项的话,switch的效率比较好,但是之前跟别人讨论,他一直坚持if效率更好,不管几个判断
作者: Apache (阿帕契)   2022-12-18 23:50:00
看你编译跟执行环境
作者: labbat (labbat)   2022-12-19 10:30:00
看asm也不够准啦,写的程式码片段让分支预测器或快取预抓太好猜,那就会有虚假的跑分效应
作者: Hsins (翔)   2022-12-19 10:33:00
辣个效能是能影响多少?有时间担心 switch 跟 if else 的效能差异,不如想想一些多层的 for 循环是不是必要…
作者: kurtsgm   2022-12-19 11:11:00
普遍讨论是多condition的情况下switch稍稍略优于if-else但差异也很微小 与其在那边争哪个performance好 乖乖看情境写可读性高的code还比较实际一点
作者: antpro (-_*|| 宅)   2022-12-19 12:21:00
全部都放进 embedded system 跑来看看。
作者: testPtt (测试)   2022-12-19 16:51:00
switch有些语言改的很棒 结合lambda清爽很多
作者: CoNsTaR ((const *))   2022-12-19 18:57:00
不用吵了,array lookup 比 switch case / if else 都快
作者: shooter555 (shooter)   2022-12-20 11:44:00
switch 跟 if-else的速度在实际上真的有人在意吗
作者: leolarrel (真.粽子无双)   2022-12-20 13:28:00
写MCU的人比较会在意吧.老板要最便宜的MCU但是搞最多的功能的时候...
作者: tw11509 (John-117)   2022-12-20 19:08:00
我是听朋友说在产线上每次都差一点点时间,累积起来就是很多时间,当然有差
作者: j0958322080 (Tidus)   2022-12-21 00:26:00
写韧体的会在意阿
作者: jobintan (Robin Artemstein)   2022-12-23 10:16:00
条件少就用if else,条件多的话就switch囉。BTW,条件多的话,我还没见识过三元判断式的操作法。www
作者: peter98 (新兵)   2022-12-23 21:56:00
在那边扯switch跟if-else效率的 肯定是计算机架构没学好系统的bottleneck很少出现在if/switch这种判断式。。。
作者: CoNsTaR ((const *))   2022-12-27 01:23:00
++i 和 i++ 编译器不一定会优化成一样喔如果 i 是可以放进 cpu cache 的 type,i++ 因为回传 ref所以不能 cache,会比 ++i 慢(慢很多)

Links booklink

Contact Us: admin [ a t ] ucptt.com