可空类型(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).