编程语言中的void
类型是一种特殊的数据类型,它表示不存在任何值。void, 无或者空类型。大部分编程语言支持void, 用做函数无返回值类型。最早ALGOL 68引入void类型。
void的特别使用
- 经典C缺乏void类型,函数可以不指定返回值,默认是整型int. 不过这种方式很容易产生误解和冲突,在ANSI/ISO C废弃,并用void类型明确指定。
- C89之前函数参数为空,可以不写void,C99之后必须写void. C99之前会出现这种奇怪的代码,定义void func(),可以用func(1, 2, 3)而不会报错。
- Python不需要void类型,解释器了解返回值并做正确转换。它提供None表示无返回值。
void *类型
- void *可以看成通用类对象类型,C/C++可以利用它模拟通用对象的行为。C/C++中void *保持和指针类型大小相同,如64位编译器为8.
- ObjC id类型和其他语言void *本质上很类似,注意它只可表达任意ObjC对象指针,不能指代基本类型。
返回void
- 很多编程语言支持函数没有返回值,即void.
- C/ObjC/C++/Java/C# 等均支持。
- VB采用了一种不同的设计思路,Sub代表没有返回值的subroutine.
- Kotlin 没有void, 用Unit类型指代 "void".
- 仓颉 没有void类型,而用 Unit 类型,数值为 () .