对于我正在开发的软件包,我想在全局环境中覆盖<-
,以便打印一些参数。在检查了帮助后,看起来我不能像我+
,*
等那样只分配方法。我现在创建了以下函数:
`<-` = function(a,b){
base::`<<-`(a,b)
if (identical( parent.frame(n = 1) , globalenv() )){
print('hello world')
}
}
我需要使用<<-
而不是<-
,以便它进入正确的环境,我只希望在全局工作时打印一些内容(以防止大量的消息)。 / p>
我的问题是,在内部函数中用<-
替换<<-
是个坏主意吗?是否可能破坏任何代码?我的感觉是这应该是相对安全的,但是我不太清楚底层c代码R如何调用交互,所以我想检查这是否可能会破坏某些东西。
<-
,这样如果我看到数据框或列表,我可以向控制台提供元数据。但是,我似乎没有办法只为<-
和+
添加*
方法。如果有人比上面的代码有更好的方法来完成这个,我很高兴听到它,虽然知道代码是否真的会引起问题会很有用(我想知道它是否会导致性能问题,尽管我会希望不是)