199_emacs lisp之defconst-常量定义
完整的common lisp的学习集合整理如下: https://github.com/GreyZhang/g_lisp 继续分析我现在使用的emacs配置实现,今天的小结涉及到2个语句。用到了同一个函数:defconst。 源代码如下: 接下来,查一下用到的这个函数(很可能是一个宏)的相关帮助文档: 这个功能的实现也是通过C代码来实现的,这个确实是很有意思。我现在最初接触的几个功能的实现都是使用了C代码而不是lisp,这从一方面让我想到了这个功能是效率攸关的功能或者使用机器频繁的功能,从另一方面倒也让我对C语言赞叹有加。似乎,很多语言最初的构建都是基于C语言,emacs lisp虽说不是百分之百,但是最起码从我这一开始接触就看到了这样的影子。 从形式以及功能设计上看,这个函数的功能行为与setq比较类似,相关的描述可以参考如下链接: https://blog.csdn.net/grey_csdn/article/details/104158807 形式上不同的是,这个定义可以增加一个描述信息。 Defconst定义的是一个常量,读了一下上面的说明,我想到了《C专家编程》的一句话“C语言中的const其实理解为read only或许更加贴切”。我个人觉得,兴许这个描述也适用于这里。只不过,这里的修改发生在全局以及局部重叠的时候,这里有一个我理解不透的地方