对于C / C ++,人们使用#ifdef .. #endif技术来防止重新加载库,而Objective-C使用import来做同样的事情。
lisp / elisp怎么样?如果之前使用过(require'cl),并且某处看到(需要'cl),那么lisp是否足够聪明,不再加载它?或者,有没有办法阻止这个重新加载库?
答案 0 :(得分:4)
不,elisp不会再次加载它。来自文档(C-h f require
):
“如果未加载功能FEATURE,请加载 来自FILENAME。“
Common Lisp也是如此:
“require函数测试是否a 模块已经存在(使用 区分大小写的比较);如果 模块不存在,要求 继续加载适当的文件 或一组文件。“