空白类型

编辑
本词条由“匿名用户” 建档。
空白类型,是一个正常返回的函数的返回类型,但不向其调用者提供结果值。通常这样的函数被调用是为了其副作用,如执行一些任务或写入其输出参数。在它也类似于函数式编程语言和类型理论中的单元类型。参见单位类型#在编程语言中的比较。C和C++也支持指向void类型的指针,但这是一个不相关的概念。 一个程序可能可以把指向任何类型数据的指针(除了函数指针)转换成指向void的指针,然后再回到原来的类型,...

空白类型

编辑

空白类型,是一个正常返回的函数的返回类型,但不向其调用者提供结果值。通常这样的函数被调用是为了其副作用,如执行一些任务或写入其输出参数。在它也类似于函数式编程语言类型理论中的单元类型。参见单位类型#在编程语言中的比较。C和C++也支持指向void类型的指针,但这是一个不相关的概念。

一个程序可能可以把指向任何类型数据的指针(除了函数指针)转换成指向void的指针,然后再回到原来的类型,而不会丢失信息,这使得这些指针对多态函数很有用。C语言标准并不保证不同的指针类型具有相同的大小或对齐方式。在C和C++中,一个具有void结果类型的函数,要么到达函数的终点,要么执行一个没有返回值的返回语句而结束。void类型也可以取代函数原型的参数列表,以表示该函数不需要参数。注意,在所有这些情况下,void不是任何值的类型限定符。尽管有这个名字,但这在语义上类似于一个隐含的单元类型,而不是一个零或底层类型(有时被混淆地称为void类型)。不像真正的单元类型是一个单子,无效类型缺乏表示其值的方法,语言没有提供任何方法来声明一个对象或表示一个具有无效类型的值。在最早的C语言版本中,没有特定结果的函数默认为int的返回类型,而没有参数的函数只是有空的参数列表。

函数的返回值

指向未定型数据的指针被声明为整数或指向char的指针。一些早期的C语言编译器有这样的功能,现在看来是很烦人的,即对任何没有使用函数返回值的函数调用产生一个警告。

在Haskell中

编辑

与C++相反,在函数式编程语言Haskell中,void类型表示空类型,它没有居民[1]。一个进入空类型的函数不返回结果,一个具有类型签名IOVoid的副作用的程序不会终止,或者崩溃。特别是,没有进入空类型的总函数。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/170901/

(2)
词条目录
  1. 空白类型
  2. 在Haskell中

轻触这里

关闭目录

目录