ImageVerifierCode 换一换
格式:DOC , 页数:226 ,大小:1.26MB ,
资源ID:2204404      下载积分:15 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-2204404.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(整理的Lua程序设计-很完整.doc)为本站会员(11****ws)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

整理的Lua程序设计-很完整.doc

1、Programming in LuaLua程序设计作者:Roberto Ierusalimschy翻译:http:/ 制作:中国 lua开发者 http:/ 相关链接:lua 中文在线手册 http:/译序“袁承志知道若再谦逊,那就是瞧人不起,展开五行拳,发拳当胸打去。荣彩和旁观三人本来都以为他武功有独到之秘,哪知使出来的竟是武林中最寻常不过的五行拳。敌对三人登时意存轻视,温青脸上不自禁露出失望的神色。“荣彩心中暗喜,双拳如风,连抢三下攻势,满拟自己的大力魔爪手江南独步,三四招之间就可破去对方五行拳,那知袁承志轻描淡写的一一化解。再拆数招,荣彩暗暗吃惊,原来对方所使虽是极寻常的拳术,但每一招均

2、是含劲不吐,意在拳先,举手抬足之间隐含极浑厚的内力。”金庸碧血剑编程语言之于程序员,若武功招式之于习武之人,招式虽重要,却更在于使用之人。胜者之道,武功只行于表,高手用剑,片草只叶亦威力无穷。当今武林,派别林立,语言繁杂,林林总总不计其数。主流文化的C/C+、Java、C#、VB1;偏安一隅的 Fortran;动态语言中的Perl、Tcl、Ruby、Forth、Python,以及本书介绍的 Lua;,等等等等。再加上世界上那些不知道躲在哪的旮旯的奇奇怪怪的 hacker捣鼓出来的异想天开的语言,要想各类语言样样精通,不异于痴人说梦。不信可欣赏一下BrainFuck语言2的 Hello Worl

3、d程序,语言本身依如其名。 -+-+-+-+-+-+- 字符串使用双引号,比如“literal strings“;单字符使用单引号,比如a;模式串也是用单引号,比如%w_*。符号表示语句的输出或者表达式的结果: print(10) 1013 + 3 16符号表示等价,即对于 Lua来说,用 this与 that没有区别。this that0.5 关于本书开始打算写这本书是 1998年冬天(南半球),那时候 Lua版本是 3.1;2000年 v4.0;2003 年 v5.0。很明显的是,这些变化给本书带来很大的冲击,有些内容失去了它存在理由,比如关于超值(upvalues)的复杂的解释。一些章节

4、被重写,比如 C API,另外一些章节被增加进来,比如协同处理。不太明显的是,Lua 语言本身的发展对本书的完成也产生了很大的影响。一些语言的变化在本书中并没有被涵盖进来,这并非偶然的。在本书的创作过程中,有的时候在某个章节我会突然感觉很困惑,因为我不知道该从何开始或者怎样去讲问题阐述清楚。当你想尽力去解释清楚如何使用的前提是你应该觉得使用这个东西很容易,这表明 Lua某些地方需要被改进。还有的时候,我顺利的写完某个章节,结果却是没有人能看得懂我写的或者没有人对我在这个章节内表达的观点达成一致。大部分情况下,这是我的过错因为我是个作家,偶尔我也会因此发现语言本身的一些需要改进的缺陷(举例来说,

5、从 upvalues到lexical scoping的转变是由无意义的尝试所带来的抱怨所引发的,在此书的先前的草稿里,把 upvalues形容成是 lexical scoping的一种)。本书的完成必须服从语言的变化,本书在这个时候完成的原因:Lua 5.0是一个成熟的版本语言变得越来越大,超出了最初本书的目标。此外一个原因是我迫切的想将 Lua介绍给大家让更多的人了解 Lua。0.6 感谢在完成本书的过程中,很多人给了我极大的帮助:Luiz Henrique de Figueiredo和 Waldemar Celes给了我很大的帮助,使得本书能够更好完成,Luiz Henrique 也帮助设

6、计了本书的内部。Noemi Rodriguez, Andr Carregal, Diego Nehab, 以及 Gavin Wraith 阅读了本书的草稿提出了很多有价值的建议。Renato Cerqueira, Carlos Cassino, Toms Guisasola, Joe Myers和 Ed Ferguson也提出了很多重要的建议。Alexandre Nakonechnyj负责本书的封面和内部设计。Rosane Teles负责 CIP数据的准备。谢谢他们所有人。第 1章 起点写一个最最简单的程序Hello World。print(“Hello World“)假定你把上面这句保存在

7、hello.lua文件中,你在命令行只需要:prompt lua hello.lua看到结果了吗?让我们来看一个稍微复杂点的例子:- defines a factorial functionfunction fact (n)if n = 0 thenreturn 1elsereturn n * fact(n-1)endendprint(“enter a number:“)a = io.read(“*number“) - read a numberprint(fact(a)这个例子定义了一个函数,计算输入参数 n的阶乘;本例要求用户输入一个数字 n,然后打印 n的阶乘。1.1 ChunksChu

8、nk是一系列语句,Lua 执行的每一块语句,比如一个文件或者交互模式下的每一行都是一个 Chunk。每个语句结尾的分号(;)是可选的,但如果同一行有多个语句最好用;分开a = 1 b = a*2 - ugly, but valid一个 Chunk可以是一个语句,也可以是一系列语句的组合,还可以是函数,Chunk可以很大,在 Lua中几个 MByte的 Chunk是很常见的。你还可以以交互模式运行 Lua,不带参数运行 Lua:Lua 5.0 Copyright 1994-2003 Tecgraf, PUC-Rio 你键入的每个命令(比如:“Hello World“)在你键入回车之后立即被执行,

9、键入文件结束符可以退出交互模式(Ctrl-D in Unix, Ctrl-Z in DOS/Windows),或者调用 OS库的 os.exit()函数也可以退出。在交互模式下,Lua 通常把每一个行当作一个 Chunk,但如果 Lua一行不是一个完整的 Chunk时,他会等待继续输入直到得到一个完整的 Chunk.在 Lua等待续行时,显示不同的提示符(一般是).可以通过指定参数让 Lua执行一系列 Chunk。例如:假定一个文件 a内有单个语句 x=1;另一个文件 b有语句 print(x)prompt lua -la -lb命令首先在一个 Chunk内先运行 a然后运行 b。(注意:-l

10、 选项会调用require,将会在指定的目录下搜索文件,如果环境变量没有设好,上面的命令可能不能正确运行。我们将在 8.1节详细更详细的讨论 the require function)-i选项要求 Lua运行指定 Chunk后进入交互模式.prompt lua -i -la -lb将在一个 Chunk内先运行 a然后运行 b,最后直接进入交互模式。另一个连接外部 Chunk的方式是使用 dofile函数,dofile 函数加载文件并执行它.假设有一个文件:- file lib1.luafunction norm (x, y)local n2 = x2 + y2return math.sqrt(

11、n2)endfunction twice (x)return 2*xend在交互模式下: dofile(“lib1.lua“) - load your library n = norm(3.4, 1.0) print(twice(n) 7.0880180586677-i和 dofile在调试或者测试 Lua代码时是很方便的。1.2 全局变量全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil.print(b) nilb = 10print(b) 10如果你想删除一个全局变量,只需要将变量负值为 nilb = nilprin

12、t(b) nil这样变量 b就好像从没被使用过一样.换句话说, 当且仅当一个变量不等于nil时,这个变量存在。1.3 词法约定标示符:字母(letter)或者下划线开头的字母、下划线、数字序列.最好不要使用下划线加大写字母的标示符,因为 Lua的保留字也是这样的。Lua 中,letter的含义是依赖于本地环境的。保留字:以下字符为 Lua的保留字,不能当作标识符。and break do else elseifend false for function ifin local nil not orrepeat return then true untilwhile注意:Lua 是大小写敏感的.

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。