正如问题所述...
一个等式在数学符号形式下可能比在代码中更有意义。能够在注释中使用数学符号可以提高我项目的可读性。
顺便说一句,这是在.NET中。
我只是使用多行来完成它:
// Work out average as: sum (values)
// --------------
// count (values)
//
// and distance between points as:
// _______________________
// / 2 2
// d = \/ (x1 - x0) + (y1 - y0)
//
// and the following function:
//
// 3 2
// f(x) = ax + bx + cx + d
完全不需要使用任何魔法。难道你不喜欢ASCII艺术吗?
跟随 @pax 的建议,使用 ASCII 艺术/纯文本来呈现您的方程式(顺便点赞 +1):
以下是数学相关字符的快捷键列表:
°(度)- Alt+0176
±(正负号)- Alt+0177
²(平方)- Alt+0178
³(立方)- Alt+0179
¼(1/4)- Alt+0188
½(1/2)- Alt+0189
¾(3/4)- Alt+0190
我使用LaTeX:如果它很简单,你可以直接看到它;如果它很复杂,只需将其剪切并粘贴到最近的WordPress窗口中,大多数情况下它们会正确解析。
对于普通的注释,我通常使用LaTeX或Word的语法。但通常是Word,因为例如β比\beta
更易读。由于我的源文件通常是Unicode,这并不是问题。此外,我不喜欢在所有内容周围使用太多大括号 :-)
有时我对Javadoc感到厌倦,并且使用大量HTML使公式在Javadoc中显示得漂亮,但这并不有助于源代码的可读性(并且利用了Javadoc 仅构建到HTML,.NET就没那么幸运了)。
我会将Pax的示例编写成以下形式:
// Work out average as:
// ∑(values)/|values|
// and distance between points as:
// d = √( (x_1 - x_0)² + (y_1 - y_0)² )
// and the following function:
// f(x) = ax³ + bx² + cx + d
我很少使用Unicode下标,因为并不是每个字体都支持它,尤其是适合编程的字体 :)
我本来想在Matt的文章下发表评论,但我的声望太低了。我曾经为LaTex做过类似的事情。这是一个Sandcastle构建组件,它解析嵌入XML注释中的LaTeX并创建图像,将其添加回文档中。它是mimeTeX的简单包装器。你可以在以下链接中查看alpha代码:http://github.com/cuda/latex-sandcastle/
对我来说,理解复杂的数学问题最简单的方法是插入一些实际数字并跟随其过程。仅仅阅读它的工作原理是不够的,除非我只是在提醒自己它是做什么的。
使用Nunit测试将是提供如何使用复杂数学问题的实际示例的理想方式。也许只需使用注释指出他们可以浏览的单元测试以及在哪里找到它们。
记住你的受众是谁。评论必须对你几个月后和你(现在和未来的)团队成员有意义。因此,如果数学符号对你们所有人来说都非常易懂,那么这可能没问题;但是,由于我无法知道谁会阅读该评论,我建议添加文本表示或描述。