0

假设类和类的实例化保存在 2 个单独的文件中,您将如何在实例化类之前导入类数据?

如果将下面的代码保存在同一个文件中,则可以正常工作,但我怀疑一旦代码库开始增长,您就会希望将数据拆分为更小的代码块。

我应该使用 [来源],它是否存在自动加载器或任何其他指南?

文件:_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()
4

2 回答 2

0

最直接的方法是首先运行或获取类文件。在这种情况下,结果将是存储在 R:s 全局环境中的环境对象。这是课堂。

作为第二步,您通过实例化同一个类来创建一个对象。如果此实例保存在单独的文件中,则您还必须运行或获取该文件。

由于两个对象(类和对象)现在都将存在于 Global 环境中,您现在可以决定是否要删除该类并只保留该对象。

遵循标准指南,两个对象之间唯一的命名约定区别是类名以大写字母开头,同时对象具有相同的名称但所有字符都小写。

如果类的数量增加,那么逐个管理对象当然是不切实际的,并且您可能需要一些自动加载逻辑。

于 2019-06-26T08:48:47.837 回答
0

如果我理解你的问题,你应该创建一个包说MyPackage(包含你的类Class_1)和其他人将是消费者,他们需要library(MyPackage)在他们的代码中做,然后再消费类。

如果所有消费者都是同一个包的一部分,您可以采购它。

于 2019-06-25T18:16:12.557 回答