词法定界

词法定界

 lexical scoping

 static scoping

  词法定界(lexical scoping 有时叫静态域)是许多语言约定使用的,变量只能在这套范围(按功能排列)内被一些已经定义了的 代码段中调用(引用)。

当被编译后,这些范围将被确定下来。变量定义用这种格式的时候叫私有变量。

  相反的还有动态域(dynamic scoping)。动态域产生可以在定义变量的代码段外调用的变量,这样定义的变量也叫公共变量。

时间: 2024-11-07 15:55:45

词法定界的相关文章

lua函数精讲(二)

Lua中的函数带有词法定界的第一类值. 第一类值: 在Lua中,函数和其他值(数值,字符串)一样,函数可以被存放在变量中,也存放在表中, 可以作为函数的参数,还可以作为函数的返回值. 词法定界:被嵌套的函数可以访问他外部函数的变量. lua的函数也可以是匿名的,当我们提到函数名时,实际上是说一个指向函数的变量. 闭包 词法界定加上第一类函数是一个功能强大的概念. function sortbygrade(names, grades) table.sort(names, function(n1,n

lua学习笔记之函数

Lua学习笔记之函数 1.  函数的作用 函数主要完成指定的任务,这样的情况下函数作为调用语句使用,函数可以计算并返回值,这样的情况下函数作为赋值语句的表达式使用. 语法: funcationfunc_name(arguments-list) Statements-list end 调用函数的时候,如果参数列表为空,必须使用()表示是函数调用. Print(8*9,9/8) a = math.sin(3) +math.cos(10) print(os.date()) 上述规则有一个例外,当函数只

lua本学习笔记功能

Lua本学习笔记功能 1.  函数返回 指定任务的主要功能是完成,在这种情况下,函数被用作调用语句.函数可以计算并返回值,在这种情况下,作为分配值表达式语句使用. 语法: funcationfunc_name(arguments-list) Statements-list end 调用函数的时候,假设參数列表为空,必须使用()表示是函数调用. Print(8*9,9/8) a = math.sin(3) +math.cos(10) print(os.date()) 上述规则有一个例外.当函数仅仅

图书馆推荐阅读:香港大学推荐的44本经典书籍

如果你半夜醒来发现自己已经好长时间没读书,而且没有任何负罪感的时候,你就必须知道,你已经堕落了.好书分享,值得收藏! 1.<拖延心理学> 作者: [美]简·博克/ [美]莱诺拉·袁 你想要向拖延的恶习开刀吗?这两位加利福尼亚心理学家在她们治疗拖延者的实践中精准地捕捉到了拖延的根本原因.这本书可以帮助读者减轻拖延,更好地享受生活. 2.<梦的解析> 作者: [奥地利]弗洛伊德 弗洛伊德的<梦的解析>被誉为精神分析的第一名著.它通过对梦境的科学探索和解释,找破了几千年来人类

算法中的递归分析和分治法的原理

分析递归算法三种方法 替换法.迭代法.通用法(master method) 作用:分析递归算法的运行时间 分治算法 将一个问题分解为与原问题相似但规模更小的若干子问题,递归地解这些子问题,然后将这些子问题的解结合起来构成原问题的解.这种方法在每层递归上均包括三个步骤: divide(分解):将问题划分为若干个子问题 conquer(求解):递归地解这些子问题:若子问题Size足够小,则直接解决之 Combine(组合):将子问题的解组合成原问题的解 其中的第二步很关键:递归调用或直接求解  (递

MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档[原创]

[文章+程序 作者:张宴 本文版本:v1.0 最后修改:2008.07.01 转载请注明原文链接:http://blog.zyan.cc/post/356/] MySQL在高并发连接.数据库记录数较多的情况下,SELECT ... WHERE ... LIKE '%...%'的全文搜索方式不仅效率差,而且以通配符%和_开头作查询时,使用不到索引,需要全表扫描,对数据库的压力也很大.MySQL针对这一问题提供了一种全文索引解决方案,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜

Linux操作系统基础解析之(七)——Bash(Shell)基础知识(4)

九.展开 命令行的展开是在拆分成词之后进行的.有七种类型的展开:花括号展开,波浪线展开,参数和变量展开,命令替换,算术展开,分行成词,路径展开. 展开的顺序是:花括号展开,波浪线展开,参数和变量展开,命令替换,算术展开,分行成词,路径展开,按照从左到右的顺序展开. 在系统上还有一种可用的额外的展开:进程替换. 只有花括号展开,分行成词和路径展开在展开前后的词数会发生改变:其他展开总是将一个词展开为一个词. 唯一的例外是上面提到的"[email protected]"和"${n

不止是产品经理(六)----态度与激情

   近日食欲颇好,貌似又开始胖了,这真是一个忧伤的话题.胖的原因可以从开源节流理解:吃的开.运动的少,恰又赶上每日坐班中,少有走动.一次和朋友吃烤肉时,上厕所有则广告写着"生活需要有态度,工作需要有激情".颇有哲理,而此类广告则是针对男士养生保健的业务.态度与激情,倒是一个人内心宁静与否可衡量的点,生活态度鲜明,工作充满激情,那日常中必是少了些犹犹豫豫,多了些坚定执着,内心也更加平静.    乐帝近来工作与学业还算顺利.但也不免会有焦虑,焦虑的核心主要围绕倘使毕业季来临,乐帝还未准备

Lua 函数、闭包、尾调用总结

<lua 程序设计>在线阅读:http://book.luaer.cn/ 1.函数 函数有两种用途: 完成指定的任务,这种情况下函数作为调用语句使用: 计算并返回值,这种情况下函数作为赋值语句的表达式使用. 1.1 语法 function func_name (arguments-list) statements-list; end; 示例 function foo (x) return 2*x end foo = function (x) return 2*x end 从上面我们可以看出lu