变量作用域空间学习与讨论

作用域空间分如下几种:

*1,全局 存放在obarray

*2,buffer-local ?存储在什么对象中

*3,let 绑定局部变量

*4,函数的参数列表声明的变量

那这种变量的作用范围(scope)和生存期(extent)分别是怎样的呢?

作用域(scope)是指变量在代码中能够访问的位置。emacs lisp 这种绑定称为 indefinite scope。indefinite scope 也就是说可以在任何位置都可能访问一个变量名。而 lexical scope(词法作用域)指局部变量只能作用在函数中和一个块里(block)。

疑问点:

buffer-local作用域,用的是什么对象来存储变量的呢?

1 个赞