我只是把自己原来不清楚的点记录下来,方便自己查阅,同时希望点醒其他人。
defvar和setq
defvar
defvar 可以对变量添加document string(文档说明)
defvar 只用做初始化变量,如果变量之前有值,则不会再进行赋值
(defvar variable-name value
"document string")
setq
setq 不用像set一样在变量名前加’(单引号)
setq 不仅可以初始化变量,还可以进行变量赋值操作
(setq foo "I'm foo"); => "I'm foo"
let 和 let*
let* 和 let 的使用形式完全相同,唯一的区别是在 let* 声明中就能使用前面声明的变量,比如:
(defun circle-area (radix)
(let* ((pi 3.1415926)
(area (* pi radix radix)));这里给area赋值用了前面声明的变量pi的值
(message "直径为 %.2f 的圆面积是 %.2f"