我正在构建一个 R 包,并且有几个文件只包含类定义(R6Classes,但我确信这适用于任何类型)。在构建包时,由于未找到某些定义而出现错误 - 例如,文件未按必要的顺序加载:
Error in R6Class("MyChildClass", inherit = DataSource,
public = list(initialize = function(...) {
(from MyChildClass.R#1) :
object 'DataSource' not found
Calls: <Anonymous> ... source_many -> source_one
-> eval -> eval -> R6Class
Execution halted
Exited with status 1.
我知道 .R 中的Collate:
字段DESCRIPTION
,但我必须写下包中的每个 .R 文件。随着项目规模的扩大,这非常麻烦......
我想到了另外两个选择:
将起始函数放在文件中的行尾 (
Z_Evaluate.R
)或者将所有类定义文件 () 内容包装
<FileName>
在它们自己的加载函数 (LoadClassDefinitionsFrom<FileName>()
) 中,并在启动函数的开头以正确的顺序调用它们。
两者对我来说似乎都不是很方便。如果我没记错的话,Latex 编译器会两次检查源代码以确保一切正常。这在 R 中可能是不可行的。
处理此类问题的最佳做法是什么?