可空類型
可空類型(Nullable types)是在一些程式語言中允許出現NULL值的數據類型,用於表示缺失值()或無效值,如函數執行失敗的返回值,或SQL的NULL。靜態類型語言中,可空類型是可選類型。動態類型語言(即值有類型,但變量沒有類型)中等價於單個空值。
原始類型如整型和布爾類型不能有空值,但有對應的可空類型(可空整型或可空布爾類型)。
語言支持
支持可空類型的程式語言:
支持原生空值的靜態類型語言:
- Ballerina [1]
- C#[2] (從版本2)可聲明可空整型,如
int? x
.[3] - Dart[4]
- Kotlin [5]
- Swift [6]
- PHP[7]
- Ceylon
- SQL
- SAS (Missing value)
使用庫支持空值的靜態類型語言:
- C#版本1.0,使用外部庫[8]可定義可空類型如NullableInteger, NullableBoolean。[9]
- Visual Basic .NET[10]
- Java (從版本8)
- Scala
- Oxygene
- F#
- 靜態類型的CLI語言族
支持空值的動態類型語言:
- Perl的純量類型的預設值為
undef
,也可賦值為undef
- PHP有NULL類型和is_null()方法,從版本7.1開始有原生的可空類型[11]
- Python有
None
值[12] - Julia有
nothing
值(屬於類型Nothing
)和Union{T, Nothing}
類型[13] - Ruby有nil值和NilClass類型
- JavaScript有
null
值
參見
參考文獻
- ^ Optional Type - Ballerina Programming Language. [2022-03-02]. (原始內容存檔於2019-01-06).
- ^ BillWagner. Nullable value types - C# reference. docs.microsoft.com. [2021-10-05]. (原始內容存檔於2022-05-24) (美國英語).
- ^ Nullable Types (C#). Msdn.microsoft.com. [2013-08-19]. (原始內容存檔於2016-10-17).
- ^ Sound null safety | Dart. [2022-03-02]. (原始內容存檔於2022-05-28).
- ^ Null Safety - Kotlin Programming Language. [2022-03-02]. (原始內容存檔於2022-02-13).
- ^ Optional Types - The Swift Programming Language. [2022-03-02]. (原始內容存檔於2021-07-23).
- ^ PHP: New features - Manual. www.php.net. [2021-10-05]. (原始內容存檔於2022-06-05).
- ^ (luKa) Developer Zone - NullableTypes. Nullabletypes.sourceforge.net. [2013-08-19]. (原始內容存檔於2019-09-04).
- ^ NullableTypes. Nullabletypes.sourceforge.net. [2013-08-19]. (原始內容存檔於2016-03-03).
- ^ KathleenDollard. Nullable Value Types - Visual Basic. docs.microsoft.com. [2021-10-05]. (原始內容存檔於2022-04-11) (美國英語).
- ^ PHP: RFC:nullable_types. [2022-03-02]. (原始內容存檔於2022-05-31).
- ^ Built-in Constants — Python 3.9.5 documentation. [2022-03-02]. (原始內容存檔於2022-06-06).
- ^ Types · the Julia Language. [2022-03-02]. (原始內容存檔於2022-03-24).