null == var 和var == null之間到底有什么不同抱完,可能很多人只是以為是代碼習(xí)慣的不同,本質(zhì)上沒有什么不同胸竞。到底他們之間是否真的相同呢/
null == var
這種表達(dá)式稱為Yoda condition expression.
簡單來說:Yoda condition expression是指在條件判斷語句中將條件比較的兩部分按聲明的順序進(jìn)行顛倒的一種寫法。
如:
正常的條件判斷可以寫作:
if(str == 42){/*....*/}
Yoda condition expression可以寫作:
if(42 == str){/*....*/}
這種寫法的原因來自星球大戰(zhàn),具體可以點(diǎn)擊上側(cè)的鏈接進(jìn)行了解躏精。
這種寫法帶來的唯一好處是:當(dāng)var == null
我們誤寫作賦值語句var = null
的時(shí)候,語言并不會(huì)報(bào)錯(cuò)鹦肿,但是寫作null = var
在編譯階段就會(huì)報(bào)錯(cuò)矗烛。
而對程序執(zhí)行的結(jié)果并不會(huì)造成影響。