void 相关问题

当没有返回值时,用作方法/函数的返回类型的语法占位符的不完整类型。

为什么函数不会在赋值语句中的 void 上下文中生成警告?

以下代码将生成警告。 (原因是因为你需要将 1,2,3 括在括号中)。 $ perl -wE'my @foo = 1,2,3;' 在 -e 第 1 行的 void 上下文中无用地使用常量 (2)。 我们...

回答 1 投票 0

返回类型为 void

我正在使用 PHP 7 测试返回类型。 我创建了一个简单的脚本来测试 PHP 7 的返回类型: 我正在使用 PHP 7 测试返回类型。 我创建了一个简单的脚本来测试 PHP 7 的返回类型: <?php Class Obj { public function __construct(){ } public function test(): string { //a string needs to be returned return "ok"; } } function foo(): Obj { //instance of Obj needs to be returned return new Obj(); } $o = foo(); echo $o->test(); // output: ok 现在在其他编程语言中,当您指定返回类型时void,这意味着您无法返回任何内容,否则会收到错误。所以我写了这个脚本: <?php function foo(): void { } foo(); 现在在上面的脚本中,预期的输出什么也没有。 相反,它给了我一个致命错误: 致命错误:foo()的返回值必须是void的实例,第2行没有返回 我的问题是(我找不到),在 PHP 7 中会有类似的 void 类型吗? 编辑: 针对 void 返回类型的新单独 RFC 已发布,已通过投票,并在 PHP 7.1 中实现。 PHP 中现在有一个 void 返回类型。 :) 原帖: 取自wiki.php.net: 未来的工作 超出本 RFC 范围的未来工作想法包括: 允许函数声明它们根本不返回任何内容(Java 和 C 中为 void) 所以目前没有办法声明您不退回任何东西。 我不知道在你的情况下什么是最好的,但我可能会暂时不声明返回类型。 回答你的问题 PHP 7 中是否会有 void 返回类型: 目前还没有 保证,但我认为 void 或同义词很可能会以某种方式实现。 php 7.1 接受 void返回类型。所以它会在未来出现。 有关其工作原理的一些示例: function should_return_nothing(): void { return 1; // Fatal error: A void function must not return a value } function returns_null(): void { return null; // Fatal error: A void function must not return a value } function lacks_return(): void { // valid } function returns_nothing(): void { return; // valid } 请参阅 Andrea Faulds 的 RFC 了解更多信息! 编辑:在 PHP 7.1 中,有一个 void 伪类型。它在Void Return Type RFC中定义。以下是 7.1 之前的答案。 返回类型 RFC 的作者在这里。在 PHP 7.0 中,不会有 void 返回类型,因为 RFC 没有添加它,任何其他针对 PHP 7.0 的 RFC 也没有添加它。 如果我们决定为次要版本添加新的关键字/保留字是可以的,即使它们会破坏代码,则类型 void 可以存在于 PHP 7 系列中。这有点不确定,但它是在 PHP 5.4 中使用 callable 关键字完成的。 就个人而言,我认为我们不需要void;我们已经有了 null。 来自手册: 特殊的NULL值表示没有值的变量。 NULL 是 null 类型唯一可能的值。 在 PHP 中,不返回任何内容的函数将隐式返回 null。这意味着您永远无法“实际上”返回任何内容*。走 null 路线意味着不会出现向后兼容性中断,因为 null 不会是从 PHP 7.0 开始的有效类/接口/特征名称,并且不会添加任何新键或保留字。 *熟悉 Zend 引擎的人会意识到你可以不返回任何内容,但如果你不返回任何内容,你正在分配的变量将被分配为 null,这使得它们在逻辑上是等效的。 php 中没有 void 的等效类型, 返回空值;可能符合您的要求,因为它没有任何类型,如 0 或任何其他值。注意:实际无效意味着没有返回。 @BeNice 我理解你的观点,无论如何我总结了以下考虑 Levi Morrison 作为可持续发展的一个实际问题:引入 void 作为可能的回报类型事实上,我们打破了 null 唯一可能类型是 null 的假设。 这样,应该返回void来进行null的类型检查,通过设计改变架构约束并导致向后兼容性混乱。 // your choice implies this comparison should be true: gettype(null) === void; 我认为在代码中不经常使用 null 的人将承担 void 类型实现。 虽然当你设置返回类型为void时你不能返回任何东西,但是你可以在函数中打印一些东西。 类似这样的事情。 <?php function foo(): void { print "OK"; return; } foo(); ?> 这将打印“OK”,但它不返回任何内容。 另外,需要注意的是,我们只能使用 void 作为返回类型。我们不能将它用作函数参数类型。 示例: function myfunction(void $param) { } 它将产生这个致命错误 // Fatal error: void cannot be used as a parameter type 此外,如果您使用OOP,则无法在继承期间更改void返回类型。 示例: class MyClass { public function myMethod(): void { } } class MyNewClass extends MyClass { public function myMethod(): array { } } 这将产生这个致命错误 Fatal error: Declaration of MyNewClass::myMethod(): array must be compatible with MyClass::myMethod()

回答 6 投票 0

Rcpp 不会导出内联 void 函数

简单的代码文件test2.cpp是 双 tau 蛋白; // [[Rcpp::导出]] 内联无效 set_tau(double t) { τ = t; } // [[Rcpp::导出]] 内联双 get_tau() { 返回 tau 蛋白; } 它不会编译...

回答 1 投票 0

JavaScript 的 void 运算符的实际用例是什么?

为什么有人会写: 功能 () { 如果(错误){ 返回 void console.log(错误) } } 代替: 功能 () { 如果(错误){ 控制台.log(错误) 返回 } } 有一个...

回答 4 投票 0

如何打印shared_ptr类?

如何打印shared_ptr?我必须通过“void print”打印 sp1 和 sp2,但我不知道该怎么做。这是代码 结构媒体资产 { 虚拟〜MediaAsset()=默认; // 妈...

回答 1 投票 0

错误:C 中的预期参数声明符

大家好。 我有一个错误:预期参数声明符。 我该如何解决这个问题? 我是编程新手。 提前致谢。 #包括 无效总和(int n1,int n2) { 整数

回答 1 投票 0

有人可以向我解释一下为什么调用这个函数后a会变成2而不是3或4吗?

#包括 使用命名空间 std; 无效 f(int &x, int &y) { x = 1; x = x + y; } int main() { 整数a = 3; f(a, a); 计算< #include <iostream> using namespace std; void f(int &x, int &y) { x = 1; x = x + y; } int main() { int a = 3; f(a, a); cout<<a; return 0; } 我在某处发现了这个函数,问题是当 a 为 3 时,调用 f(a, a) 后 a 的值是多少。我认为它应该在 3 到 4 之间,但它以某种方式给出了 2,我不知道不明白。有人可以解释为什么会发生这种情况,以及这些功能如何开始工作吗?好像很令人困惑,因为看起来 a 在函数后面既是 3 又是 4。 您可以使用对同一对象的多个引用来更改它。例如 int a; int &x = a; int &y = a; x = 1; x = x + y; 因为引用 x 和 y 都指向同一个变量 a then 在此语句之后 x = 1; a 等于 1。在下一个语句中 x = x + y; 其实你有 x = a + a; 结果 a 将等于 2。

回答 1 投票 0

什么是 const void,它是有效的返回类型吗?

std::is_void 的描述指出: 提供等于 true 的成员常量值,如果 T 的类型为 void、const void、volatile void,或 const 挥发性无效。 那会是什么

回答 4 投票 0

有谁知道如何修复“[错误]预期的主表达式在'.'之前”令牌”问题?

这是我编写的代码。 #包括 #包括 使用命名空间 std; 结构帐户 { 字符串用户名; 字符串密码; }; 结构时间表{ 查尔普拉...

回答 1 投票 0

c 程序的工作方式不同,但我没有改变它

我必须在c中实现动态数组。这是它的结构: typedef void (*PrintArrayElement)(const void* element); 类型定义结构{ size_t 尺寸; size_t 容量; 无效**数组;

回答 1 投票 0

为什么void的分类与其他基本类型不同?

在 cppreference.com 上,他们将类型分类为: 空洞类型 基本类型 枚举类型 派生类型 我找不到他们将虚空列为基本类型的原因。这意味着...

回答 1 投票 0

什么是 void 函数,如何在我的代码中使用它们? [已关闭]

这段代码既可以用于倒计时,也可以用于以一定间隔进行向上计数,但我应该在其中包含 2 个 void 函数,我该怎么办?他们已经在那里了吗? #包括 使用名称...

回答 1 投票 0

我不太知道 void 函数是什么,但显然我应该在这段代码中包含其中的 2 个

这段代码既可以用于倒计时,也可以用于以一定间隔进行向上计数,但我应该在其中包含 2 个 void 函数,我该怎么办?他们已经在那里了吗? `#include 使用名称...

回答 1 投票 0

如果没有可用的串行数据,如何退出Arduino中的无效循环?

我正在构建一个互联网控制的机器人,它使用 2 部 Android 手机进行控制。 第一个手机通过 USB 连接到 Arduino Uno 并用作 3G 扩展板 第二部电话用于接...

回答 1 投票 0

空指针值在函数调用之间莫名其妙地变化

好的,所以我引用的代码如下。它不是整个代码,而是相关部分 空白 array_sort(void *A, int arr_size, int 比较(void *, void*)) { 无效*最大值= A; 我...

回答 1 投票 0

使用 void 函数从结构中打印值时出现问题

我正在尝试制作一个程序,使用一个结构来存储作者的标题和一本书的页数。然后我希望它找到哪一本的页数最少,然后使用 void 函数来

回答 1 投票 0

为什么要将未使用的返回值转换为 void?

int fn(); 无效任何() { (无效) fn(); } 是否有任何理由将未使用的返回值强制转换为 void,或者我认为这完全是浪费时间?

回答 10 投票 0

C 函数定义中可以省略 void 参数吗?

我知道在现代 C 中,当我们声明一个没有参数的函数时,我们必须指定 void 关键字,例如: int fx(void); 然而,我对函数定义有一些疑问。对于

回答 1 投票 0

返回无效的有效代码吗?

我发现以下代码被 Visual C++ 2008 和 GCC 4.3 编译器接受: 无效 foo() { } 空栏() { 返回 foo(); } 我对它的编译感到有点惊讶。这是一种语言吗

回答 4 投票 0

在 void 函数末尾添加 return 语句有什么意义?

我看到签名中带有 void return 的函数/方法在函数末尾有 return 语句。这是什么原因?这是否适用于其他语言? 对于我来说...

回答 10 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.