如何確保在一段lisp代碼中沒有創(chuàng)建全局變量?
我正在編寫一些lisp代碼,我希望它不要弄亂系統(tǒng)中的全局變量。因此,我非常小心地只使用let特殊形式范圍內(nèi)的變量。然而,隨著代碼變長,要確保這一原則得到充分
解答動態(tài)
是否可以自動驗證一段lisp代碼不創(chuàng)建任何新的全局變量?
打開詞匯表-綁定:
;;;foo.el公司---只是用一些foo-*-詞法綁定:t-*-(setq foo bar nil)(defun foo bar()(let(x)(setq y nil));;;foo.el公司結(jié)束,然后字節(jié)編譯器將為你:
emacs-Q-batch-f批字節(jié)編譯福埃林頂層表格: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.
以減少開始時出現(xiàn)打字錯誤的機會,您可以使用符號補全(C-M-i-點補全)、動態(tài)縮寫(M-/-dabbrev expand)或類似的用法。- End
免責聲明:
本頁內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負責,概與琴島網(wǎng)公司無關(guān)。本頁內(nèi)容僅供參考,請您根據(jù)自身實際情況謹慎操作。尤其涉及您或第三方利益等事項,請咨詢專業(yè)人士處理。