簡體   English   中英

在R中檢查和記錄函數前置條件和后置條件的慣用方法是什么?

[英]What is the idiomatic way to check and document function preconditions and postconditions in 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更多信息,請參閱CRANStackOverflow

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM