如何确保在一段lisp代码中没有创建全局变量?
我正在编写一些lisp代码,我希望它不要弄乱系统中的全局变量。因此,我非常小心地只使用let特殊形式范围内的变量。然而,随着代码变长,要确保这一原则得到充分
解答动态
是否可以自动验证一段lisp代码不创建任何新的全局变量?
打开词汇表-绑定:
;;;foo.el公司---只是用一些foo-*-词法绑定:t-*-(setq foo bar nil)(defun foo bar()(let(x)(setq y nil));;;foo.el公司结束,然后字节编译器将为你:
emacs-Q-batch-f批字节编译福埃林顶层表格:foo.el:3:7:警告:分配给变量'foo bar'foo.el公司:5:1:警告:foo中未使用的词汇变量'x'-酒吧:foo.el:7:11:警告:如果您希望严格来说,你可以把警告变成错误:
emacs-Q-batch-eval'(警告t时setq byte compile error)'-f batch byte compile福埃林顶层表格:foo.el:3:7:错误:分配给变量'foo-bar' 要以交互方式查看这些警告,请启用flymake-mode.
以减少开始时出现打字错误的机会,您可以使用符号补全(C-M-i-点补全)、动态缩写(M-/-dabbrev expand)或类似的用法。- End
免责声明:
本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。