可空类型

可空类型（Nullable types）是在一些编程语言中允许出现NULL值的数据类型，用于表示缺失值（）或无效值，如函数执行失败的返回值，或SQL的NULL。静态类型语言中，可空类型是可选类型。动态类型语言（即值有类型，但变量没有类型）中等价于单个空值。

原始类型如整型和布尔类型不能有空值，但有对应的可空类型（可空整型或可空布尔类型）。

语言支持
支持可空类型的编程语言：

支持原生空值的静态类型语言：
   
C# (从版本2)可声明可空整型，如int? x.
 Dart
 Kotlin  
 Swift  
PHP
 
 SQL
 SAS (Missing value)

使用库支持空值的静态类型语言：
 C#版本1.0，使用外部库可定义可空类型如NullableInteger, NullableBoolean。
 Visual Basic .NET
 Java (从版本8)
 Scala
 
 F#
 静态类型的

支持空值的动态类型语言：
 Perl的标量类型的缺省值为undef，也可赋值为undef
 PHP有NULL类型和is_null()方法，从版本7.1开始有原生的可空类型
 Python有None值
 Julia有nothing值(属于类型Nothing)和Union{T, Nothing}类型
 Ruby有nil值和NilClass类型
 JavaScript有null值

参见
 空值结合运算符
 Union类型
 单值类型

参考文献

类型论