※ 本文轉寄自 ptt.cc, 文章原始頁面
看板Soft_Job
標題

[請益] 比較值放左邊 變數放右邊

時間
最新2019-05-18 01:53:00
留言118則留言,71人參與討論
推噓47 ( 49267 )
Hi 軟工板 All, 最近看到一種coding style如 if (True == var1) 就是比較的值放在左邊,變數放在右邊 一直覺得不太習慣 過往寫程式都是變數放左邊 想問各位大大這是有什麼好處 是跟lvalue, rvalue有關嗎 ? 還是其實根本沒差就是一種coding習慣而已 ? 想請各位解惑,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.185.98 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1556871309.A.605.html

118 則留言

WorkForFree, 1F
怕==寫成=而已

AudiA4Avant, 2F
可以避免一些crash的情況

k300plus, 3F
豁然開朗!! 如果寫錯成= compiler就會噴error 感謝回答

eatpupu, 4F
這樣寫 compiler 可以幫你抓 == 寫成 =

yyhsiu, 5F
yoda notation

yyhsiu, 6F
www.yinwang.org/blog-cn/2013/04/16/yoda-notation
有趣

Gway, 7F
其實不推薦這種 應該以可讀性為最重要 現在的compiler 設定

Gway, 8F
warming as error 後這種typo都可以抓出來
的確可讀有點差,但若是內部寫的compiler不一定那麼完善

stkoso, 9F
某些語言undefined變數這樣寫不會crash 反過來就會了

shooter555, 10F
原來有這種防呆的方式0.0 但覺得好不順眼

DCTmaybe, 11F
好不順眼啊..頭痛

sherees, 12F
yoda?

hidog, 13F
我是比較喜歡判斷式裡面不要塞等號啦XD
這個也會有問題吧 例如非零值在if內都會是True,這個不見得是預期的結果

deray, 14F
[請益] 比較值放左邊 變數放右邊

crossdunk, 15F
我還看過等於放左右兩邊的咧

crossdunk, 16F
=OO=
天賦不夠高,這是啥意思XDDD

yamakazi, 17F
coverity這種靜態分析工具應該可以抓出來if(a=b)

rhythm7321, 18F
都出來工作了 怎麼還會 == 寫成 =
越是簡單的bug越是可怕啊wwww

taikobo, 19F
我也習慣倒過來寫,這樣有影響可讀性喔?

Gway, 20F
以前windows 派 code complete裡面推薦這種寫法 防衛性程式

Gway, 21F
? 但後面出的軟體書 大部分都不推薦此法
防呆 vs 可讀性 都幾?

codehard, 22F
有誰寫code不手殘

groza, 23F
等號內可以賦值的語言才會這樣寫

groza, 24F
有時要賦值 有時要做判斷 難免搞混

groza, 25F
if 內才對 打錯抱歉
※ 編輯: k300plus (180.177.0.139), 05/03/2019 20:30:51

mithuang, 26F
很不直覺,第一次看覺得傻眼

hidog, 27F
if( a == 0 ) 不要用 if(a) 這是可以解決的

hidog, 28F
看個人習慣囉

hidog, 29F
這種寫作習慣沒對錯 沒bug 就好

sourbait, 30F
我都寫 = =
Build code team就= =

twilighthook, 31F
用.equals()會放左邊

Darkword1987, 32F
equals 常數放左邊避免null
了解

solonwu, 33F
避免有null的狀況發生

philip80220, 34F
if(a == 0) 跟if(a) 是不一樣的吧…

s860134, 35F
依照公司規定

ChungLi5566, 36F
要習慣用.equals() 不然哪天手殘把Object拿來比

LinuxKernel, 37F
等你哪天發現bug是因為手殘寫成if(a=0)就知道惹...

hidog, 38F
給philip 我要打 if( a != 0 ), 打錯~
我剛誤解你不要打等號的意思是if(a),if(a)根本超confused啊 我同意可以用 != 來達到跟 == 相同邏輯
※ 編輯: k300plus (180.177.0.139), 05/03/2019 22:03:17

debut, 39F
那如果是(True != var1)呢, != 總不會打成=吧?

usoko, 119F
但高階語言還在用這種寫法就讓人匪夷所思

Dreamerrr, 120F
同樓上