我读到 R 不允许封装。因此,在为 R 构建包/软件时,最好创建文件夹来保存一起工作的每个函数、类和方法。我对封装的想法有限,并认为封装将是函数内部的私有函数,但我认为并非如此。更有可能的是,封装用于向用户隐藏用户不需要打扰的内部功能。在这种情况下,我认为 R 中确实没有封装
我将尝试在一周左右的时间内构建我的第一个包。因此,我一直在阅读有关构建软件包的文档。以上是正确的吗?
另外,我读到函数、类和方法可以在启动时使用,而无需构建包,但没有关于如何执行的说明。这是真的吗,因为那将非常有帮助。
我读到 R 不允许封装。因此,在为 R 构建包/软件时,最好创建文件夹来保存一起工作的每个函数、类和方法。我对封装的想法有限,并认为封装将是函数内部的私有函数,但我认为并非如此。更有可能的是,封装用于向用户隐藏用户不需要打扰的内部功能。在这种情况下,我认为 R 中确实没有封装
我将尝试在一周左右的时间内构建我的第一个包。因此,我一直在阅读有关构建软件包的文档。以上是正确的吗?
另外,我读到函数、类和方法可以在启动时使用,而无需构建包,但没有关于如何执行的说明。这是真的吗,因为那将非常有帮助。
R 没有封装,因为对象不能有私有成员。例如,如果你这样做,
obj <- list(a=1, b=2, c=3)
class(obj) <- "foo"
然后任何人都可以检查甚至修改objwith obj$a、obj$b等的内容:
obj$a # returns 1
obj$a <- 999 # 'a' component of obj now contains 999
这与 R 确实具有的单独命名空间意义上的封装不同。NAMESPACE当您构建一个包时,您可以使用该文件标记它的哪些功能对外界可见。默认情况下,其中未提及的所有内容都是不可见的。