Language agnostic 为什么我有时会听到这个词;词汇变量;

Language agnostic 为什么我有时会听到这个词;词汇变量;,language-agnostic,computer-science,terminology,lexical-scope,Language Agnostic,Computer Science,Terminology,Lexical Scope,我已经见过“词汇变量”这个术语好几次了,主要是在闭包的上下文中。Paul Graham在他的Lisp书籍中使用了这个术语,指的是使用let表达式定义的变量 我知道词法范围界定是静态范围界定的另一个名称。词法变量只是程序单元引用环境中可见的变量吗 我希望在这个假期用这个词给我的朋友和家人留下深刻印象,有人能帮我吗?词法变量在程序单元的引用环境中是可见的,但并非所有在程序单元引用环境中可见的变量都一定是词法变量 基本上,词法变量是特定于定义它的范围的变量。在像Perl这样的语言中,实际上有两个名称空

我已经见过“词汇变量”这个术语好几次了,主要是在闭包的上下文中。Paul Graham在他的Lisp书籍中使用了这个术语,指的是使用let表达式定义的变量

我知道词法范围界定是静态范围界定的另一个名称。词法变量只是程序单元引用环境中可见的变量吗


我希望在这个假期用这个词给我的朋友和家人留下深刻印象,有人能帮我吗?

词法变量在程序单元的引用环境中是可见的,但并非所有在程序单元引用环境中可见的变量都一定是词法变量


基本上,词法变量是特定于定义它的范围的变量。在像Perl这样的语言中,实际上有两个名称空间相互屏蔽:底层的动态包名称空间和覆盖的词汇名称空间。因此,$foo可以引用其中任何一个,这完全取决于它是否在词汇范围内声明。

词汇变量是一个只能在其词汇范围内引用(按名称)的变量。换句话说,变量的范围是由程序的文本定义的,而不是程序执行的动态。变量及其绑定的值可能具有超出词法范围的范围(寿命),例如,如果它在闭包中捕获


请参见。

的描述。那么可以安全地说术语“词汇变量”和“局部变量”是可互换的吗?词法更加精确?不。Perl具有非词法的范围本地化变量(它们在包名称空间中实现),使用local()关键字。+1希望用编程术语打动您的家人。你一定有个书呆子家庭。:)