10

在 R 中检查和记录函数前置条件和后置条件的惯用方法是什么?我会在这里考虑Eiffel' 的内置requireensure构造或D'inout阻止最先进的技术,但大多数语言都没有这些,因此已经开发出最佳实践来近似它们。

通过检查前提条件,我的意思是如果传入不符合函数假设的数据,则抛出某种运行时异常。目前stopifnot,我在函数开始时可以想到的每个前提条件都有一个语句。这同样适用于后置条件,但关于返回值而不是参数。

此外,是否有标准的方法来记录这些前置条件和后置条件是什么?例如,在 Java 中的 JavaDoc 注释中将这些拼写出来是非常标准的。

R 在这方面的最佳实践是什么?

4

3 回答 3

5

S4 类的有效性检查,其中检查通过“setValidity”与类定义一起存储。参见例如:

http://www.r-project.org/conferences/user-2004/Keynotes/Leisch.pdf

于 2012-05-04T06:09:30.637 回答
4

?stopifnot

或者

用于更友好的错误消息但更冗长的代码if (condition) stop("...message...")

于 2012-05-04T09:29:23.460 回答
3

在文档方面,我建议您查看该roxygen2软件包。它与 JavaDoc 和 Doxygen 的相似之处在于它将文档与代码一起存储在源文件中。有许多项目需要定义,例如:

  • 输入参数是什么
  • 函数返回什么

但这并不能阻止您创建自己的pre项目post和记录前后条件的项目。有关详细信息,roxygen2请参阅CRANStackOverflow

于 2012-05-04T08:41:16.773 回答