Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R “;插槽没有';不存在”;错误消息是什么意思?_R_Oop_S4 - Fatal编程技术网

R “;插槽没有';不存在”;错误消息是什么意思?

R “;插槽没有';不存在”;错误消息是什么意思?,r,oop,s4,R,Oop,S4,我试图写一个对象并访问他的参数。我有两个文件,menus.R,我在其中定义对象,还有main.R,我在其中使用对象并尝试访问插槽(参数) 两个文件的代码如下所示: 菜单.R 当我调用菜单(competition=0,stats=0)时,我可以看到show方法给了我什么。这是正确的。在show方法中,我为competition赋值。当我退出show方法时,下一条指令是print(menu@competition)这里是我遇到这个错误的地方: 印刷错误(menu@competition):没有名为的

我试图写一个对象并访问他的参数。我有两个文件,
menus.R
,我在其中定义对象,还有
main.R
,我在其中使用对象并尝试访问插槽(参数)

两个文件的代码如下所示:

菜单.R
当我调用
菜单(competition=0,stats=0)
时,我可以看到
show
方法给了我什么。这是正确的。在
show
方法中,我为
competition
赋值。当我退出
show
方法时,下一条指令是
print(menu@competition)
这里是我遇到这个错误的地方:

印刷错误(menu@competition):没有名为的插槽 此对象类“classGeneratorFunction”的“竞争”

然后通过getClass(class(menu))我得到了:

我做错了什么?如何访问
竞赛
统计

您将对象构造函数与对象本身混淆了。
menu(competition=0,stats=0)
生成一个类为
menu
的新对象,但您无法将其保存在某个位置,因此它会打印在屏幕上。因此,您的第一个输出是正确的

但是,您需要操纵对象。但你没有救它!相反,您尝试操作“对象工厂”,即
菜单()
。“对象工厂”的类型是
classGeneratorFunction
,这就是您看到的

这应该起作用:

myMenuObject <- menu(competition=0, stats=0)
print(myMenuObject)
print(myMenuObject@competition)
getClass(class(myMenuObject))

myMenuObject抱歉,但我看不到您在任何地方分配对象:
x侧注:,只需复制并粘贴文本本身,并将其格式设置为代码块。请花点时间查看我对您的问题所做的更改,并了解相关内容。
menu(competition=0, stats=0)
print(menu@competition)
getClass(class(menu))
myMenuObject <- menu(competition=0, stats=0)
print(myMenuObject)
print(myMenuObject@competition)
getClass(class(myMenuObject))