问题标签 [undef]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7888 浏览

ruby - undef的实际用途

可能重复:
undef - 为什么要取消定义 ruby​​ 中的方法?

任何人都可以在红宝石中为 undef 制定实际用途吗?我来自没有内置它的 javascript 和 python 之类的语言。您当然可以用 javascript 之类的语言来模拟它:

但我从来没有真正使用过。是否存在一些 undef 实际上有用的常见情况?

编辑——刚刚在“The Ruby Programming Language”一书中遇到了这个:

另一种防止对象复制的技术是使用 undef 来简单地删除 clone 和 dup 方法。另一种方法是重新定义 clone 和 dup 方法,以便它们引发异常,并带有一条错误消息,明确指出不允许复制。这样的错误消息可能对使用您的类的程序员有所帮助。

0 投票
1 回答
116 浏览

arrays - 为什么定义的函数不起作用?

我有一段代码不能像我预期的那样工作。主要是定义的功能不起作用。

我得到输出

显然$jobs[1]undef。我错过了什么?

0 投票
3 回答
3201 浏览

perl - Perl 评估中的警告

我需要在 eval 中隐藏警告,但其余代码应继续抛出警告消息。这是我所拥有的 -

现在 $hash->{key} 的值可以是函数调用,例如:

$another_varundef(或"")时,问题就来了。该脚本只是以以下消息结束 -

参数 "" 在 (eval 1381) 第 1 行的乘法 (*) 中不是数字。

有什么建议可以避免这种情况吗?我正在考虑的一个选择是解析括号内的值并首先评估它,但它与我正在处理的数据相当复杂。

0 投票
1 回答
1288 浏览

c++ - #undef main 没有结果

我正在使用 MVisualC++ 2010,当我尝试取消定义“main”时,没有结果,控制台照常启动。我期待一些丢失的入口点错误或其他东西。这是为什么?

0 投票
3 回答
5975 浏览

arrays - 是否有清除所有变量值的内置函数

我正在寻找一种方法来清除 Perl 程序中的所有数组。

目前,我正在调用一个显式“重置”所有数组的子程序:

sub clear_arrays{(@array1,@array2,@array3)=((),(),());}

这迫使我找到程序中的所有数组并在子例程中逐字引用它们。

我查看了 perldoc for reset, undef,delete但无法以清除所有数组的方式解释它们中的任何一个。

有没有 Perl 的内置函数可以做到这一点?

如果没有,是否有一个函数可以返回所有数组变量的数组?

前任:

哪里getarrays()可能是一个内置的 Perl 函数,它返回程序中任何/所有初始化的数组。


编辑:
我的特殊情况只涉及两个需要重置的全局数组。我出于好奇而不是必要性扩大了这个问题。基本上,我的全局变量是@email_subject& @email_msg

随着脚本的进展和数据的收集/分析,它们的值被推送到其中。在脚本结束时,将发送电子邮件消息,并且脚本可能会根据循环条件变量再次运行。

如果它再次运行,我需要清除这 2 个全局变量,以便它们可以在下一个循环周期中再次聚合。通过字面引用清除这两个数组并没有杀死我,但我只是想知道 Perl 是否已经有一些内置函数来清除数组而不用字面引用它们。

这可能不是完成此任务的最佳方式,但这是我考虑的第一个直观选项。

0 投票
2 回答
426 浏览

perl - perl 内存不足消息处理仅 64 个 XML 文件,每个 2MB - unix

我尝试全球化变量和 undef ,增加 unix 中的数据段空间,本地化变量,但仍然得到相同的错误。我需要处理大约 750 个文件。有人可以帮忙吗?谢谢。我知道将整个文件读入字符串可能是个问题。但我不确定其他任何方式。但是,当我将字符串声明为全局并使其成为 ="" 时,仍然如此。应该在下一次迭代中释放内存吗?

} }

0 投票
1 回答
333 浏览

c - 循环遍历 C 预处理器中的标头

有没有办法遍历所有包含/定义的头文件,然后#undef全部?

如果循环是问题,还有其他方法可以#undef轻松解决所有问题吗?

0 投票
3 回答
1547 浏览

arrays - Perl:映射到列表的第一个元素

任务:使用 map 构建哈希,其中键是给定数组 @a 的元素,值是某个函数 f($element_of_a) 返回的列表的第一个元素:

一切正常,直到 f() 返回一个空列表(这对于 f() 是绝对正确的,在这种情况下我想分配 undef)。可以使用以下代码重现该错误:

错误本身听起来像“哈希分配中的奇数个元素”。当我重写代码时:

或者

Perl 一点也不抱怨。

那么我应该如何解决这个问题——当返回的列表为空时,获取 f() 返回的列表的第一个元素?

Perl 版本是 5.12.3

谢谢。

0 投票
3 回答
10375 浏览

c++ - 我们什么时候需要在#undef 之前使用#ifdef?

在许多 C 和 C++ 文件中,我看到过这样的宏:

我觉得,简单地写下就足够了:

如果未定义宏X,则#undef应该无效。

如果我只想取消定义宏,可以独立放置吗?无论如何,这会使编码实践变得糟糕吗?#undef

0 投票
4 回答
464 浏览

c# - c#快速取消所有参数的方法

我有一个 C# winform 应用程序,它正在进行大量计算。有一个“运行”按钮来触发该过程。我希望能够“重新触发或重新运行或重新提交”信息,而无需重新启动程序。问题是我有很多变量需要重置。有没有办法取消定义(重置)所有参数?