得恶补编译原理了, false == isShown 和 isShown == false 的区别

2015-01-24 17:30:55 +08:00
 Registering
有点小疑问

false == isShown 和 isShown == false

这两个语句效率上有何区别???,,,,

很多优秀的项目基本不会用后者这种语句,,,,


编译原理学的确实不好,得恶补了,,,,,,,,

求解答
5737 次点击
所在节点    程序员
41 条回复
zx120120
2015-01-24 17:33:02 +08:00
效率上是没有区别的。
写成 false == isShown 是为了在手抖写成 false = isShown 的时候让编译器报个错。
用 isShown == false 手抖变成 isShown = false 的时候找半天都找不到
recall704
2015-01-24 17:35:23 +08:00
同意楼上,这个应该不算编译原理的问题。
而是一种编程技巧。
Elethom
2015-01-24 17:35:42 +08:00
并沒有任何區別, 只是防止寫成 assignment 的人為錯誤. 類似 if...else 要加 braces.
mulog
2015-01-24 17:36:24 +08:00
@zx120120 说的没错
不过很久之前似乎看到过一篇文章说不提倡这么写 理由。。忘了-_-
anyway, 反正我大 Python 不需要这么写 Yay
markyangd
2015-01-24 17:39:11 +08:00
@zx120120
在我大微软的C#面前,这都不是个事。
zxtasa
2015-01-24 17:47:01 +08:00
gcc很久之前的版本就能报警告了
omegaga
2015-01-24 17:56:28 +08:00
没有区别。
这种写法叫做Yoda Notation,王垠老湿还专门写文章喷过,《Yoda表示法错在哪里》。
hahastudio
2015-01-24 17:58:22 +08:00
没有区别
编译原理总是很旧的= =
现在你能想到的人肉优化方式,编译器都已经自动做了= =
Registering
2015-01-24 18:00:46 +08:00
@omegaga

记得王垠老湿还专门撰文喷过i++这种写法
gamecreating
2015-01-24 18:03:00 +08:00
LZ逗
chrishine
2015-01-24 18:26:17 +08:00
削足适履的东西还能被称为优秀...
xbb7766
2015-01-24 18:49:03 +08:00
这么写感觉更混乱。
总不见得一直手抖,把==打成=,又不是帕金森。
况且会“手抖写错”的也不只有这个,比如php的==和===
acros
2015-01-24 18:51:19 +08:00
如果你一个失误写出了 if(isShown = false)
现在的编译器都会报出个warnning提醒你的····
timothyye
2015-01-24 19:07:34 +08:00
一楼正解
FrankFang128
2015-01-24 19:15:58 +08:00
无聊的trick
juicy
2015-01-24 19:19:20 +08:00
不管这么写是不是值得喷,至少浏览器里的js编译器还没有支持检查这种错误,所以js里这么写是提倡的咯~
husinhu
2015-01-24 19:25:04 +08:00
1. 这跟编译原理没关系,这句话编译后也就一个cmp,甚至平台支持情况下,如arm,cmp都没有,只是附庸在汇编指令后的条件码。
2. “很多优秀的blabla” 也是扯淡,事实上如果你看过一些牛逼的开源项目,看看人家的coding convention,一般都会明确说写这种语句的时候都用后面一种。
chuan
2015-01-24 19:25:18 +08:00
为了避免手误,和正常思维相逆,不太赞同这种写法
BGLL
2015-01-24 19:26:30 +08:00
这种避免犯错方法还是很有用的,所以那么多优秀的项目才都用这种方法
Xrong
2015-01-24 19:29:27 +08:00
比较不喜欢这种写法,感觉太变态了点...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/165070

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX