![](/img/trans.png)
[英]What's the idiomatic way in R to return a vector of function values when the function takes no input?
[英]What is the idiomatic way to check and document function preconditions and postconditions in R?
在R中檢查和記錄函數前置條件和后置條件的慣用方法是什么? 我會考慮Eiffel
的建造中require
和ensure
結構或D
的in
和out
藝術在這里的塊的狀態,但這些在接近他們,所以已經開發的最佳實踐出爐的大多數語言都沒有。
通過檢查前置條件,我的意思是如果傳遞了不符合函數假設的數據,則會拋出某種運行時異常。目前,對於函數開頭我能想到的每個前提條件,都有一個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相當,因為它將文檔與代碼一起存儲在源文件中。 有許多項需要定義,例如:
但是,這並不創建自己的阻止你pre
和post
該文件的前置和后置條件的項目。 有關roxygen2
更多信息,請參閱CRAN或StackOverflow 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.