假设类和类的实例保存在2个单独的文件中,如何在实例化类之前导入类数据?
下面的代码如果保存在一个相同的文件中就可以很好地工作,但是我怀疑一旦代码库开始增长,您就希望将数据拆分成较小的代码块。
我应该使用[source],它是否存在自动装带器或任何其他准则?
文件:_class_data.R
if (!"package:R6" %in% search()) {
library(R6)
}
# Class 1
Class_1 <- R6Class("Class_1",
public = list(
# Properties:
x = 0,
# Lists:
credentials = list(
user = "user",
password = "pass"
),
# Functions:
myFunction = function() {
return(self$x)
}
)
)
文件:运行R
# Should I add a [source] path here to [ _class_data.R] ?
# Instantiate a class by creating an object.
class_1 <- Class_1$new()
答案 0 :(得分:0)
如果我理解您的问题,则应创建一个MyPackage
的程序包(包含您的类Class_1
),而其他人将成为消费者,他们需要在自己的计算机上执行library(MyPackage)
代码,然后再使用该类。
如果所有使用者都是同一包装的一部分,则可以采购它。
答案 1 :(得分:0)
最直接的方法是首先运行或获取类文件。在这种情况下,结果将是存储在R:s全局环境中的环境对象。这是课程。
第二步,通过实例化相同的类来创建对象。 如果将此实例保存在单独的文件中,则您还必须运行或来源该文件。
由于两个对象(类和对象)现在都将存在于Global环境中,因此您现在可以决定是否要删除该类并仅保留该对象。
按照标准准则,这两个对象之间唯一的名称约定区别是类名以大写字母开头,同时该对象具有相同的名称,但所有字符均小写。
如果类的数量增加,那么一对一地管理对象当然是不切实际的,并且您可能需要一些自动加载逻辑。