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