我知道你不能在Haskell中得到空指針異常,但我很好奇其他語言有這個功能。例如,一個同事問是否有任何解釋語言不允許空值,我不知道答案。我所知道的唯一一種語言避免了這個billion dollar mistake是Haskell。什麼編程語言防止空指針異常?
4
A
回答
3
在Objective-C中,您可以將消息傳遞給實際上爲nil
的對象,並且它們自己默默地返回nil
。
但是,當您執行類C指針取消引用時(即使用*
或.
運算符時),仍然可能存在空指針異常的風險。
0
Kotlin是一種靜態類型的編程語言,可在Java虛擬機上運行,也可以編譯爲JavaScript源代碼或使用LLVM編譯器基礎結構。
Kotlin通過區分可爲空和不可空的類型來避免空指針異常。所有可爲空的變量必須用「?」聲明類型名稱後的後綴。對可空變量的操作需要開發者特別注意:在使用該值之前必須執行空檢查。
要調用可爲空類型的變量的方法,您必須使用「?」運算符,如果變量不爲空(並且使其返回類型爲空),則只調用方法,或者「!!」運算符,它聲明變量當前不是空的。
請注意,如果您使用「!!」,仍然可以在Kotlin上獲得空指針異常。運算符放在null對象上或與Java進行互操作時。
相關問題
- 1. Java語言空指針異常錯誤
- 2. 爲什麼空指針異常
- 3. 空指針異常。爲什麼?
- 4. 爲什麼得到空指針異常?
- 5. 爲什麼拋出空指針異常?
- 6. 爲什麼沒有空指針異常?
- 7. 獲得空指針異常。爲什麼?
- 8. 線程空指針異常
- 9. 異常空指針異常
- 10. 什麼編程語言針對J2ME?
- 11. 空指針異常
- 12. 空指針異常
- 13. 空指針異常
- 14. 空指針異常
- 15. 空指針異常
- 16. 空指針異常
- 17. 空指針異常
- 18. 空指針異常
- 19. 空指針異常
- 20. 空指針異常
- 21. 空指針異常
- 22. 空指針異常
- 23. 空指針異常
- 24. 空指針異常
- 25. 空指針異常
- 26. 空指針異常
- 27. 空指針異常
- 28. 空指針異常
- 29. 空指針異常
- 30. 空指針異常
PHP?從技術上講,它不會給你一個空指針異常,只是一個警告。 –
@BartFriederichs對我來說,聽起來並不像這樣可以避免「十億美元的錯誤」,但它仍然非常有趣 –