在 R 中检查和记录函数前置条件和后置条件的惯用方法是什么?



R中检查和记录函数前置条件和后置条件的惯用方法是什么?我认为Eiffel内置requireensure结构或Dinout块在这里是最先进的,但大多数语言都没有这些烘焙,所以已经开发了最佳实践来近似它们。

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

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

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

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

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

请参阅?stopifnot

对于更友好的错误消息,但更详细的代码if (condition) stop("...message...")

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

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

但这并不能阻止您创建自己的prepost项来记录前置和后置条件。有关roxygen2的更多信息,请参阅 CRAN 或 StackOverflow。

相关内容

  • 没有找到相关文章

最新更新