【发布时间】:2011-09-26 19:10:34
【问题描述】:
我无法完全回答“我们为什么要称“void”为'return type'?”
如何证明“void”是一种类型?
【问题讨论】:
我无法完全回答“我们为什么要称“void”为'return type'?”
如何证明“void”是一种类型?
【问题讨论】:
【讨论】:
void 是一个类型,那么void someName; 将是一个有效的变量声明。
Java Language Specificationsays that:
[...] 每个变量和每个表达式都有一个可以在编译时确定的类型。该类型可以是原始类型或引用类型。
void 不是valid type。但是,void 是一个有效的keyword,用于指示method does not return a value。
Void JavaDoc 还表示void 是关键字:
Void 类是一个不可实例化的占位符类,用于保存对表示 Java 关键字 void 的 Class 对象的引用
Integer 类将原始类型 int 的值包装在一个对象中。 Integer 类型的对象包含一个类型为 int 的字段。
Void 类代表void 关键字;而Integer 类代表int 类型。
【讨论】:
引用:
类型
公共静态最终类类型
表示基本 Java 类型 void 的 Class 对象。
取自:http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Void.html
还是我误解了这个问题?
【讨论】:
希望 class void 解释了为什么 void 是一种类型。
Void 类是一个不可实例化的占位符类,用于保存 对表示 Java 关键字 void 的 Class 对象的引用。
public final class Void extends Object
【讨论】:
是的,void 绝对是类型,意思是“无”。
顺便说一句,你的意思是C(C++,Objective-C,...)。
不能说任何语言,但在 C(C++、Objective-C、...)中,void 是一种类型。
但它是特殊的数据类型。您不能声明 void 类型的变量。这与任何其他类型的 void 不同。
但是你可以声明指向 void 的指针。返回值为 void 的函数表示函数没有返回值,或者什么也不返回。恐怕所有可以使用 void 类型的情况。
无效 * v; /** 将变量 v 声明为指向 void 的指针 */
*v 用作表达式中的左值可以分配任何类型的值而无需类型转换。这就是将 void 类型引入语言的原因。
您更新了您的问题,强调您在询问 Java。 Java 没有指针,也没有函数。 void 类型用于声明不返回任何内容的方法。
【讨论】:
任何类方法都必须指定返回类型。可以指定'void'关键字,指定它没有返回类型,例如:
public void SetPantsSize(int width);
还有一个 void 类: http://download.oracle.com/javase/6/docs/api/java/lang/Void.html
【讨论】:
Void 是大多数语言中的一种类型,鉴于典型的类型系统,将其视为指定“无”的类型是最有意义的。您没有说明您的语言,但例如,在 C# 中,void 关键字对应于 .NET framework void type。
【讨论】:
void 关键字的语言?
void 是 Java 语言中的一种类型(您可以直接在 Java 语言规范中阅读)。
然而,void 类型没有成员值,即没有具体值将具有 void 类型。因此void 用于表示方法在调用时不能返回值(即void 是“无值”的类型)。
【讨论】:
void是一个ResultType,是一个Type还是一个void(JLS 8.4)
void作为类型:java.sun.com/docs/books/jls/third_edition/html/…