gpt4 book ai didi

emacs - Emacs Lisp 中函数名的内部是什么意思?

转载 作者:行者123 更新时间:2023-12-04 13:51:10 25 4
gpt4 key购买 nike

有些人使用双破折号表示该功能可能会发生变化:
What does the double minus (--) convention in function names mean in Emacs Lisp

包括internal在函数名称中意味着类似的东西?

两个例子

where-is-internal
internal-make-var-non-special

函数 where-is-internal有一个详细的文档字符串,并且在手册中也有提及。是 where-is-internal异常(exception)?

拥有 -internal 之间有区别吗?作为后缀并具有 internal-作为前缀?

更令人困惑的是,还有带有 internal-- 的函数名称。 (带双破折号)作为前缀。

最佳答案

混淆不仅仅在于命名约定(由于历史而引起的可变性,也许有时是一时兴起)。混淆在于自由软件中的“内部”概念,其中源代码对所有人开放,可以随意使用或修改(甚至 fork )。

从(我认为是)Emacs Dev 的角度回答您的问题,因此就潜在意图而言:“内部”意味着使用这种功能的人可能更有可能遇到 Emacs 的 future 变化-该功能的开发实现和使用可能比非“内部”功能的情况。 IOW,您可能不想指望它保持现在的状态。就这样。

但是里面有很多“也许”、“更有可能”和“可能”。在实践中,一些非“内部”功能的变化比一些“内部”功能更彻底或更快。对于前者,可能会有一个弃用宽限期,在此期间,更改前的情况是可以容忍的,即仍然有效。对于“内部”的东西,情况可能并非如此。但同样,实际上在“内部”的黑色和非“内部”的白色之间存在一些灰色。

来自 Emacs Dev 的某个人(例如 @Stefan)可能会提出不同的看法或纠正我的解释。

我自己的看法:有时(经常)有一些函数和变量作者不希望用户直接使用,因此自然地认为是“内部的”,但用户仍然很好地使用了它们,甚至“有"使用(模重写大量代码)。其中一些已经删除了他们的“内部”状态(不,我没有记住示例)。或者有时添加了一个新的、非“内部”函数来使行为可用——例如,添加了一个包装器或函数值参数(同样,我没有临时的例子可以给出)。

IOW,对于 Emacs Dev 来说,也不总是清楚什么应该被视为“内部”。只需将标签作为一个标志,您可能不想在该函数或变量上计算太多。

写各种符号:我的印象是 --约定最近似乎被更多地使用(尽管也有一些旧代码使用它);使用 internal在大多数情况下,这是一个较旧的约定。

关于emacs - Emacs Lisp 中函数名的内部是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18812352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com