ฉันมีข้อผิดพลาดในหนึ่งในส่วนขยายของฉันซึ่งในที่สุดก็กลายเป็นว่าเกิดจากการset
ไม่ทำงานตามที่ฉันคาดไว้:
;; -*- lexical-binding: t -*-
(let ((a nil))
(setq a t)
(print a))
(let ((a nil))
(set 'a t)
(print a))
เมื่อทำงานกับงานemacs -Q --batch -l temp.el
พิมพ์:
t
nil
ดูเหมือนว่าฉันจะแปลกมาก ผมก็รู้สึกว่าเป็นชวเลข(setq a b)
(set 'a b)
เกิดอะไรขึ้น?