问题标签 [correctness]

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 投票
18 回答
160571 浏览

c - 带返回的 switch 语句——代码正确性

假设我在 C 中有代码,其结构大致如下:

现在很明显,breaks 不是代码正确运行所必需的,但如果我不把它们放在那里,它看起来有点像不好的做法。

你怎么看?删除它们可以吗?还是您会保留它们以提高“正确性”?

0 投票
9 回答
741 浏览

c++ - 标准 C 函数:检查 -1 还是 0?

许多标准 C 和 POSIX 函数返回-1错误和0成功,例如truncate, fflush,msync等。

ret != -1使用or检查是否成功是更好的做法ret == 0,为什么?

我的想法

根据我的经验,大多数人检查错误情况 ( ret != -1),因为通常只有一个(考虑返回NULLEOF出错的函数)。然而事后看来,可以看到这些函数可以从errno直接返回中受益(这里0被认为没有错误)。

还有人担心函数返回的不是0or -1,或者稍后会添加额外的返回值。在这些情况下,测试表明成功的“最紧密”值范围 ( ) 是有意义的ret == 0

更新0

这是我的一个假设,人们知道它EOF通常被定义为-1.

0 投票
4 回答
539 浏览

haskell - 在 Haskell 中使用幻象类型验证程序的正确性

假设我正在使用堆栈机器的代码,它可以对整数和双精度数执行一些简单的操作(推送常量、添加、mul、dup、交换、弹出、转换类型)。

现在,我正在编写的程序采用其他语言进行描述,并将其翻译成堆栈机器的代码。我还需要计算堆栈的最大大小。

我怀疑可以使用 Haskell 类型检查器来消除一些错误,例如:

  • 从空栈中弹出
  • 使用 int 乘法将双精度数相乘

我认为我可以声明,例如:

等等。但后来我不知道如何生成代码和计算堆栈大小。

有可能这样做吗?它会简单/方便/值得吗?

0 投票
2 回答
754 浏览

java - 将“If”语句的部分留空(快速简单的问题)

您好,关于带有“If”语句的正确协议的快速问题。上面的代码是我正在编写的伪代码。

基本上它比较两个字符串,如果字符串彼此相等,我希望它保留该信息(现在为 system.out.println,但稍后写入输出)。

这给我留下了一个基本上没有用的“if”和“else if”,因为我只想要完全匹配。

'if' 和 'else if' 的 {} 之间应该放什么(假设有适当的方法来做到这一点)或者有更好的方法来编码这个想法?

谢谢 :)

0 投票
6 回答
258 浏览

c++ - 用于有序非重入调用的简单断言?

我有两个功能:

void prepare() 和 void finish() 将按顺序调用,如:

我想做一个简单的断言来简单地测试它们实际上是以这种方式被调用的,并且它们没有在应用程序中被同时调用或乱序调用。

此应用程序是单线程应用程序。这是一个简单的开发/测试完整性检查,以确保这些函数被按顺序调用,并且无论出于何种原因,它们不会被同时调用。此外,这些断言/完整性检查应该从生产代码中省略,因为性能至关重要!

像这样的简单 assert() 效果最好吗?

0 投票
3 回答
4377 浏览

javascript - 用 Javascript 编写一个包装器对象

首先,如果我的问题措辞不正确,让我道歉——我不是专业的编码员,所以我的术语可能很奇怪。我希望我的代码不会太尴尬:(

我有一种fade()方法可以通过鼠标悬停使图像淡入淡出。我想使用一个包装对象(我认为这是正确的术语)来保存图像元素和一些必需的属性,但我不知道如何实现这一点。 fade()从 HTML 中调用,设计为无需太多额外设置即可放入页面(这样我可以轻松地将新的褪色图像添加到任何 HTML),就像这样:

fade(obj, flag)方法启动一个淡入图像的 SetInterval,当指针移开时,间隔被清除并创建一个新的 SetInterval 以淡出图像。为了保存不透明状态,我为对象添加了一些属性: obj.opacityobj.upTimerobj.dnTimer.

一切正常,但我不喜欢向 HTML 元素添加属性的想法,因为这可能会导致将来出现其他方法覆盖这些属性的情况。理想情况下,我认为应该涉及一个包装器对象,但我不知道如何在不添加代码以在页面加载时创建对象的情况下干净地完成此操作。如果有人有任何建议,我将不胜感激!

这是我的推子方法:

0 投票
5 回答
171 浏览

php - 检查 PHP 中的每个数组索引到底有多重要?

我正在做一个相当大的项目,其中有很多地方存在如下代码:

显然,这会在 PHP 中针对未定义的索引引发很多警告。

真的有必要重写代码如下吗?

0 投票
6 回答
2406 浏览

unit-testing - 证明单元测试的正确性

我正在创建一个用于学习目的的图形框架。我正在使用 TDD 方法,所以我正在编写很多单元测试。但是,我仍在弄清楚如何证明我的单元测试的正确性

比如我有这个类(不包括实现,我已经简化了)

我也创建了这个单元测试

好的,真棒,它的工作原理。这里只有一个症结,我已经证明这些功能只适用于这种情况。然而,在我的图论课程中,我所做的只是在数学上证明定理(归纳、矛盾等)。

所以我想知道有没有一种方法可以在数学上证明我的单元测试的正确性?那么有没有一个好的做法呢。因此,我们正在测试该单元的正确性,而不是针对某个特定结果对其进行测试。

0 投票
4 回答
17788 浏览

java - 如何修复 Findbugs 问题“保证取消引用 Null 值”NP_GUARANTEED_DEREF

嗨,我有一些代码被 Findbugs 报告为存在 NP_GUARANTEED_DEREF 问题。现在看我的代码,我不太明白它有什么问题,任何人都可以提出问题所在。

现在深入研究 Findbugs 中的错误,它突出显示了两个分配var = null;作为错误的原因,但我不太明白为什么。这不像我实际上在对var对象做任何事情,我只是在做一个空值检查。该示例取自真实的生产代码,但删除了重现错误所需的任何内容。我想知道这是否是误报。如果不是什么将是一个适当的修复。

这是 Findbugs 错误详细信息的链接:http: //findbugs.sourceforge.net/bugDescriptions.html#NP_GUARANTEED_DEREF

[更新] 在收到有关此问题的一些反馈后,我现在已在 Sourceforge 上的 Findbugs Bugtracker 中将此记录为误报,链接为https://sourceforge.net/tracker/?func=detail&aid=3277814&group_id=96405&atid=614693

关于这个问题的对话将在那里继续。

0 投票
1 回答
694 浏览

python - Cython 正确性

Cython 生成的代码是否总是与生成它的 Python 代码一样正确?

它可以帮助其他读者解决 Cython 静态类型声明和其他 Cython 功能(如果有)的使用,尽管我只对通过将 Python 模块重命名为 *.pyx 来创建 Cython 文件的情况感兴趣。

我只关心 Cython 涵盖的 Python 子集。