可空類型(Nullable types)是在一些程式語言中允許出現NULL值的數據類型,用於表示缺失值()或無效值,如函數執行失敗的返回值,或SQLNULL。靜態類型語言中,可空類型是可選類型。動態類型語言(即值有類型,但變量沒有類型)中等價於單個空值。

原始類型整型布爾類型不能有空值,但有對應的可空類型(可空整型或可空布爾類型)。

語言支持

編輯

支持可空類型的程式語言:

支持原生空值的靜態類型語言:

使用庫支持空值的靜態類型語言:

支持空值的動態類型語言:

  • Perl的純量類型的缺省值為undef,也可賦值為undef
  • PHP有NULL類型和is_null()方法,從版本7.1開始有原生的可空類型[11]
  • PythonNone[12]
  • Julianothing值(屬於類型Nothing)和Union{T, Nothing}類型[13]
  • Ruby有nil值和NilClass類型
  • JavaScriptnull

參見

編輯

參考文獻

編輯
  1. ^ Optional Type - Ballerina Programming Language. [2022-03-02]. (原始內容存檔於2019-01-06). 
  2. ^ BillWagner. Nullable value types - C# reference. docs.microsoft.com. [2021-10-05]. (原始內容存檔於2022-05-24) (美國英語). 
  3. ^ Nullable Types (C#). Msdn.microsoft.com. [2013-08-19]. (原始內容存檔於2016-10-17). 
  4. ^ Sound null safety | Dart. [2022-03-02]. (原始內容存檔於2022-05-28). 
  5. ^ Null Safety - Kotlin Programming Language. [2022-03-02]. (原始內容存檔於2022-02-13). 
  6. ^ Optional Types - The Swift Programming Language. [2022-03-02]. (原始內容存檔於2021-07-23). 
  7. ^ PHP: New features - Manual. www.php.net. [2021-10-05]. (原始內容存檔於2022-06-05). 
  8. ^ (luKa) Developer Zone - NullableTypes. Nullabletypes.sourceforge.net. [2013-08-19]. (原始內容存檔於2019-09-04). 
  9. ^ NullableTypes. Nullabletypes.sourceforge.net. [2013-08-19]. (原始內容存檔於2016-03-03). 
  10. ^ KathleenDollard. Nullable Value Types - Visual Basic. docs.microsoft.com. [2021-10-05]. (原始內容存檔於2022-04-11) (美國英語). 
  11. ^ PHP: RFC:nullable_types. [2022-03-02]. (原始內容存檔於2022-05-31). 
  12. ^ Built-in Constants — Python 3.9.5 documentation. [2022-03-02]. (原始內容存檔於2022-06-06). 
  13. ^ Types · the Julia Language. [2022-03-02]. (原始內容存檔於2022-03-24).