- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lua嵌入脚本语言的编程 分享者: 包俊强 部 门: 软件研发部 时 间:2013年03月27日晚上 问题:如何对用户输入的一串有意义的数学表达式字符串求值? 内容概要: 一、Lua脚本语言概述 二、Lua语法简介 三、C与Lua相互调用 内容概要: 一、Lua脚本语言概述 二、Lua语法简介 三、C与Lua相互调用 1.1、Lua脚本语言的由来 Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。 1.2、Lua语言的解释器lua.exe lua.exe是Lua语言的解释器,用于解释执行Lua脚本,其用法如下: (1)lua --help:显示帮助信息 (2)lua script-file :执行lua脚本文件。脚本文件 就是一个文本文件,可以以扩展名命名,但通常 以.lua为扩展名 (3)lua :进入Lua的交互解释执行环境,以end-of- file控制符或者os.exit()退出 lua.exe的使用实例 1.3、Lua语言的特征 语言的结构:Lua语言依靠C语言来完成C所擅长的方 面,如超高性能、对底层操作。lua提供的特性则 是C所不擅长的,比如相对于硬件的高层抽象、 动态结构、无冗余、简易的测试与调试。 轻量级性:LUA语言的官方版本只包括一个精简的核 心和最基本的库,这使得Lua体积小、启动速度 快,从而适合嵌入在别的程序里。 可扩展性:既可以用lua代码来扩展,又可以用外部的 C代码来扩展,Lua可以使用它们,就像是本来就 内置的功能一样,所以lua语言很容易集成到其他 语言中。 灵活性:同时支持面向过程编程和函数式编程 (functional programming),类型的动态识别与 加载。函数也可以看做一个值,可以动态的赋值 和改变。 安全性:自动内存管理,而且实现了动态大小数据的处理 功能。 高效性:是脚本语言领域最快的语言之一。 可移植性:Lua由标准C编写而成,几乎在所有操作系 统和平台上都可以编译,运行。 与C语言的良好接口:Lua脚本可以很容易的被C/C++代 码调用,也可以反过来调用C/C++的函数,这使 得Lua在应用程序中可以被广泛应用。 1.4、参考文献 Roberto Ierusalimschy.Lua程序设计[M].周惟迪,译.第2版.北京:电子工业出版社,2008. 内容概要: 一、Lua脚本语言概述 二、Lua语法简介 三、C与Lua相互调用 2.1、基本数据类型 八种数据类型: nil、boolean、number、string、 userdata、function、thread、table nil——任何未定义的变量的值,将某个变量的值赋值 为nil表示清除该变量 boolean——逻辑数据类型,值为true或false,常用在 if语句中。在Lua中只有false和nil才是“假”,其 余的都为“真”,包括0也是“真” number——数值类型,不区分整数或者小数 string——字符窜,以单引号’ ’或者双引号” ”表示 userdata——用户用C语言自定义的数据 function——函数类型,函数可以根据需要赋值或者 改变 thread——线程 table——表,一种通用的容器,表中每一项由key和 value组成,通过tableName[key]访问或修改value 2.2、关键字and、or和 not a and b :如果a为假,则返回a,否则返回b a or b:如果a为真,则返回a,否则返回b not a:永远只返回true或false 2.3、常用控制语句 条件执行语句: if 条件 then body elseif body else body end 循环执行语句1: while 条件 do body end 循环执行语句2: repeat body until 条件 循环执行语句3: for 变量=起始值,上限值[,步长(可选,默认为1)] do body end 如果不设置上限,使用math.huge for 迭代参数列表 in 迭代空间的迭代器 do body end 2.4、程序块和关键字local 程序块(chunk)是指交互环境中可以独立执行的一行(如果不能够独立
文档评论(0)