当前位置:  开发笔记 > 编程语言 > 正文

如何实现S3类的名称?

如何解决《如何实现S3类的名称?》经验,为你挑选了1个好方法。

如何为我的S3类实现通用函数名称,以便我可以"设置"我的对象的名称.

要检索名称,我只需将其实现为:

names.myobject <- function(x, ...){
   x$y
}

然后我可以这样做:

names(myobject)

但我不能用它来设置以下形式的名称:

names(myobject) <- "a"

我想的是:

names.myobject <- function(x, newname){
   x$y <- newnames
}

如何实现"设置"形式的名称?



1> Martin Morga..:

从函数中找出泛型的签名; 'setter'是names<-.

> names
function (x)  .Primitive("names")
> `names<-`
function (x, value)  .Primitive("names<-")

names并且names<-是所谓的原始函数,方法调度用C实现,因此通常的指示是你使用S3泛型(UseMethod("foo")在泛型的主体中)不存在.

实现模式后面的方法generic.class = function....请记住,setter方法的返回值必须是您已更新的对象

names.myobject <- function(x) x$y
`names<-.myobject` <- function(x, value) { x$y = value; x }

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有