[379] Forgetting

Title Text:Of course, the assert doesn’t work.

Origin:https://xkcd.com/379/

https://www.explainxkcd.com/wiki/index.php/379:_Forgetting

Cueball正在编写一段代码(可能是编程语言C ++),它从名为Linked list的数据结构中删除一个项目(文本的前两行)。然后,他写了一条评论(由双斜线分隔),将代码与他的个人生活联系起来。最后,他添加了一个断言,这通常是一个条件的形式规范,应始终为真(程序员用它确保例如质量不是负的)。但在这种情况下,他没有断言与软件相关的谓词,而是断言“它会好起来的” – 并且由于解释器如何处理字符串文字,断言将成立。

“断言”是一种编程语句,允许您在代码中插入完整性检查。例如,如果您正在编写一个程序来计算中微子的速度,那么在计算结束时您可以说:

断言(velocity_of_neutrino< = speed_of_light);

如果断言失败,则程序将因错误而停止。例如,这比发表一篇令人尴尬的论文要好得多。

如前所述,Cueball正在从链表中删除一个项目。这基本上会删除,或使计算机“忘记”该项目。 Cueball意识到他不能通过使用两个命令来忘记这种情绪事件,因为他可以使用计算机,这只会使他对一个未说明的事件感到沮丧,这个项目 – 在某种意义上 – 是无法删除的。

他写了两条评论,进一步阐明了他对这一事件的绝望感,随后是一句“它会好的”,这与他正在编写的代码无关。

标题文本解释了有问题的断言失败:我们不能确定事情会好起来。

Leave a Reply

Your email address will not be published. Required fields are marked *

Categories