4
A
回答
8
这里的讽刺是你没有不要覆盖它。您创建了一个名为“print”的数据对象,当您在控制台键入print
时,eval-print循环接管并返回它。如果您通过输入print("something")
或print(42)
来正确测试打印的行为,您会发现解释器仍然能够在基本NAMESPACE中找到print.default
函数。定义与现有函数名称相同的数据对象是不好的做法,不是因为它们在R解释器中被覆盖,而是因为它们覆盖了用户的头脑。解释者通过查看是否存在表示函数调用的开放括号来确定您的意图(好吧,它决定了它会做什么)。如果字母打印后面跟着“(”,那么解释器会查看参数的类并发送相应的打印方法。
3
把它送回从命名空间
print = base::print
10
rm
不会删除的基本对象,所以你可以运行:
rm(print)
有趣的是,你可以打印件事情:
> print <- FALSE
> print
[1] FALSE
> print("hi")
[1] "hi"
> rm(print)
> print("hi")
[1] "hi"
> print
function (x, ...)
UseMethod("print")
<bytecode: 0x2a3a148>
<environment: namespace:base>
相关问题
- 1. 如果我隐藏了一个内置函数,我该如何恢复它?
- 2. 我该如何忽略特定的NuGet包来恢复?
- 3. 为什么我的R.java消失了,我该如何恢复它
- 4. 我不小心删除了我的android密钥库,我该如何恢复它?
- 5. 一个街区在我的网站上消失了,我如何将它恢复?
- 6. 我该如何在git中恢复-aC?
- 7. 现在ActiveRecord :: Base.silence {}消失了,我该如何恢复该功能?
- 8. 如果我不确定它,我该如何恢复一个对象?
- 9. 为什么IE忽略我的CSS,我该如何解决它?
- 10. 为什么我错过了git2.h,我该如何恢复?
- 11. 如果我CFRelease()核心数据中的图像,我该如何恢复它?
- 12. 我在git中恢复了合并,现在我该如何重新合并?
- 13. 为什么Git会忽略png文件,我该如何“忽略”它们?
- 14. 我该如何让TypedFactory忽略NoTrackingReleasePolicy
- 15. 我该如何忽略MS Windows文件
- 16. 我删除了Main.Storyboard,恢复它但
- 17. 我在一个函数中有一个函数,我该如何一次突破它们?
- 18. 我while循环似乎被忽略了我的函数getline
- 19. 如何让MATLAB忽略一个函数?
- 20. Eclipse/Subversion:如何恢复忽略文件
- 21. 如何恢复颠覆忽略?
- 22. 让R忽略函数中的参数
- 23. 我恢复了一个提交。现在我想要所有回
- 24. 我在忽略提交后很快恢复悬挂提交?
- 25. 我该如何忽略Xcode中的一些错误?
- 26. 我该如何参考一个函数?
- 27. 我如何索引R矩阵没有它恢复到矢量
- 28. 我不小心删除了我的Gemfile。我能恢复它吗?
- 29. 我向Scala列表中添加了一个函数,现在我该如何删除它?
- 30. 我如何恢复一个RabbitMQ队列
这会在全局环境中产生不必要的'base :: print'副本。删除你创建的'print'对象(如@gsk在他的回答中建议的那样) –
它从来不在基础:NAMESPACE中,它比编程暴力更耗费基础功能。 –