是什麼(空!= someVariable)和(someVariable!= NULL)有什麼區別?我看到很多人在比較中首先使用'null'。哪一個比另一個好,爲什麼?(NULL!= someVariable)OR(someVariable!= NULL)
2
A
回答
3
他們是等價的。
但是,如果輸錯!=
爲=
第一個將導致一個無效的分配錯誤。有些人喜歡這樣,因爲輸入=
而不是==
相當容易,但前者並不總是意外。
您可以在Annotated ES5上看到有關==
運算符的規範的精確規則。
3
他們評估的是同樣的事情,但最好選擇(someVariable != null)
,因爲另一種方法是Yoda condition。它涉及可讀性。
0
第一個可能是someVariable
更好的其實是一個很長的的參數列表的功能。乍一看你的意圖會更容易看到。否則,我總是使用第二個。
0
考慮您希望此:
if (number == 42) { /* ... */ }
// This checks if "number" is equal to 42
// The if-condition is true only if "number" is equal to 42
現在,想象一下你忘了應該有一個雙=
,你只寫一個=
代替:
if (number = 42) { /* ... */ }
// This assigns 42 to "number"
// The if-condition is always true
這樣的錯誤是很常見的,可以在允許條件內的變量賦值的編程語言中很難檢測到。
現在,考慮扭轉你的病情的順序:
if (42 == number) { /* ... */ }
// This checks if "number" is equal to 42
// The if-condition is true only if "number" is equal to 42
的42 == number
的行爲是完全一樣的number == 42
行爲。
但是,如果再犯同樣的錯誤提到上文(你忘了應該有一個雙=
,你只寫一個=
代替),其行爲已不再是一樣的:
if (42 = number) { /* ... */ }
// This produces an error
因此,一些人們傾向於顛倒其條件的順序,因爲它使得常見的錯誤更易於檢測。這種「反轉」條件被稱爲Yoda conditions。
在不允許在條件語句(例如Python或Swift)中進行變量賦值的編程語言中,使用Yoda條件沒有任何優勢,並且通常不鼓勵使用它們。在其他語言(如JavaScript或PHP)中,Yoda條件可能非常有用。然而,最終,這仍然主要取決於您的個人偏好或您的項目需要的任何編碼標準。
相關問題
- 1. ++ someVariable VS. Javascript中的someVariable ++
- 2. OOP訪問類變量:)使用functionName( - > SomeVariable
- 3. OOP理論問題:: $這個 - > someVariable = $ someValue中
- 4. PHP:只是說$ someVariable;在函數內部 - 這是否做任何事
- 5. JSON文件輸出爲[NULL,NULL,NULL,NULL]
- 6. PropertyInfo.GetValue(null,null)返回null
- 7. NULL與NOT NULL
- 8. json_decode給NULL NULL
- 9. MYSQL - NULL和(null)
- 10. != null與= null
- 11. UITextView setText,null null
- 12. null == null返回false?
- 13. (obj == null)vs(null == obj)?
- 14. null and not null mysql
- 15. 用null處理null?
- 16. ByteArray to Bitmap null null
- 17. Spring @Autowired bean null null
- 18. Django DateField not null null
- 19. Null以及Null值
- 20. Symfony2中插入錯誤PARAMS [NULL,NULL,NULL]
- 21. Java string null檢查!= null或!str.equals(null)?
- 22. JGroups:send(null,null,Message)vs send(Address,null,Message)
- 23. Credentials.acquireTGTFromCache(null,null)使用jre 7返回null
- 24. NULL vs DEFAULT NULL vs NULL DEFAULT在MYSQL列創建中爲NULL?
- 25. 在我的設備上查詢(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,null)問題
- 26. managedQuery(Media.EXTERNAL_CONTENT_URI,projection,null,null,null);在設備上運行時返回null
- 27. CASE檢查IN子句中的NULL值
- 28. 空字符串+ null =「null」?
- 29. NULL字典未計爲NULL
- 30. NOT NULL返回NULL值
等效,順便說一句,它是'null',小寫。 – elclanrs