舉個例子,我們要進行一個字元串型的小數的比較:<code>'8.8'>'8.7'</code>,結果自然是true。
那麼<code>'8.8'>'8.10'</code>呢?結果仍然是true,但願你沒有将它誤以為是<code>8.8>8.10</code>。
類似上面的問題,在進行版本号比較時,一樣存在。比如,我們這麼比較<code>'8.8.1'>'8.10.1'</code>,結果就是錯誤的。合理的比較方法應該是将兩個待比較的版本号按'.'作為分隔符進行拆分,并将每一位轉換成數字,然後按位比較。
來看這個語句:
此時你很可能是希望該條件判斷為false,而實際上它卻是true。這樣直接寫出來相信每個人都不會弄錯,問題在于上面這個語句中的'false',往往是經過諸多計算後得到的一個結果,或者是來自于接口的某個資料項,在這些諸多的表面現象掩蓋之下的字元型'false',有時很容易被疏忽。
類似這樣的容易出現錯誤的語句還有:
諸如此類,不一而足。類似這種條件判斷語句,在代碼中再常見不過,而且往往是業務邏輯執行與否的判斷開關,一旦出現判斷錯誤,則整個分支的執行都是錯誤的,影響相當嚴重。如果類似上述的錯誤語句出現在基礎工具方法中,影響的面還将更大。是以,可得長點心了!