0

我读到 R 不允许封装。因此,在为 R 构建包/软件时,最好创建文件夹来保存一起工作的每个函数、类和方法。我对封装的想法有限,并认为封装将是函数内部的私有函数,但我认为并非如此。更有可能的是,封装用于向用户隐藏用户不需要打扰的内部功能。在这种情况下,我认为 R 中确实没有封装

我将尝试在一周左右的时间内构建我的第一个包。因此,我一直在阅读有关构建软件包的文档。以上是正确的吗?

另外,我读到函数、类和方法可以在启动时使用,而无需构建包,但没有关于如何执行的说明。这是真的吗,因为那将非常有帮助。

4

1 回答 1

2

R 没有封装,因为对象不能有私有成员。例如,如果你这样做,

obj <- list(a=1, b=2, c=3)
class(obj) <- "foo"

然后任何人都可以检查甚至修改objwith obj$aobj$b等的内容:

obj$a         # returns 1
obj$a <- 999  # 'a' component of obj now contains 999

这与 R 确实具有的单独命名空间意义上的封装不同。NAMESPACE当您构建一个包时,您可以使用该文件标记它的哪些功能对外界可见。默认情况下,其中未提及的所有内容都是不可见的。

于 2013-10-19T15:09:54.927 回答