在Emacs中使用defadvice,什么是正确的上下文?

3

请问(defadvice ...)的作用是什么?我不太清楚应该在什么情况下使用它,似乎在C/C++/Java语言中并不常见?如附图所示的示例。非常感谢。enter image description here

1个回答

5
使用defadvice或最近的advice-add等方法来建议函数是重新定义函数的一种替代方案。
如果您不是函数的作者,并且它可能已经在您的代码之外的各个地方使用,您可以重新定义它或者对其进行建议,此后每次使用该函数时都会使用您的重新定义或建议。这是可逆的:您可以禁用您的建议。
重新定义函数通常与其他库不兼容,因为它们自己可能希望以某种方式重新定义或扩展它。
建议的重点在于它允许多个库以合理控制的方式更改或增强函数定义,从而减少不同库之间发生冲突的机会。或者至少使得很容易删除任何库对函数所做出的更改的影响。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接