Lua语言基础入门(基于孙卓教授的Microcity)$$1
大连海事大学孙卓教授独立开发了一个microcity仿真程序,相信大部分的做物流的学弟学妹们都会接触到这个仿真软件,为了降低大家的学习难度,我将在这个系列文章中对lua语言的语法,结合孙卓教授的Microcity软件,进行一个语法知识的讲解Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
大连海事大学孙卓教授独立开发了一个microcity仿真程序,相信大部分的做物流的学弟学妹们都会接触到这个仿真软件,为了降低大家的学习难度,我将在这个系列文章中对lua语言的语法,结合孙卓教授的Microcity软件,进行一个语法知识的讲解
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于 1993 年开发的,该小组成员有:Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo。
设计目的
其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua 特性
- 轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
- 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
- 其它特性:
- 支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
- 自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
- 语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
- 通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。
Lua 应用场景
- 游戏开发
- 独立应用脚本
- Web 应用脚本
- 扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench
- 安全系统,如入侵检测系统
第一个 Lua 程序
接下来我们使用 Lua 来输出"Hello World!"
实例
print("Hello World!")
点击运行后,界面会出现![]()
Lua 基本语法
Lua 学习起来非常简单,我们可以创建第一个 Lua 程序!
第一个 Lua 程序
在命令行中,输入以下命令:
> print("Hello World!")
接着我们点击运行键,输出结果如下:
> print("Hello World!")
Hello World!
>
脚本式编程
我们可以将 Lua 程序代码保存到一个以 lua 结尾的文件,并执行,该模式称为脚本式编程,如我们将如下代码存储在名为 hello.lua 的脚本文件中:
(在孙老师的旧版系统中 MicroCity Web (gitee.io) 代码是.lua格式的文件)
(在孙老师更新之后的Microcity中 MicroCity Web (gitee.io))保存的格式是.mw 文件,具体区别,笔者还没用弄明白,但,不妨碍我们学习的过程
print("Hello World!")
print("www.csdn.com")
使用 lua 名执行以上脚本,输出结果为:
注释
单行注释
两个减号是单行注释:
--大连海事大学
多行注释
--[[ 大连海事大学 大连海事大学 --]]
标示符
Lua 标示符用于定义一个变量,函数获取其他用户定义的项。标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上 0 个或多个字母,下划线,数字(0 到 9)。
最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的。
Lua 不允许使用特殊字符如 @, $, 和 % 来定义标示符。 Lua 是一个区分大小写的编程语言。因此在 Lua 中 Runoob 与 runoob 是两个不同的标示符。以下列出了一些正确的标示符:
mohd zara abc move_name a_123 myname50 _temp j a23b9 retVal
关键词
以下列出了 Lua 的保留关键词。保留关键字不能作为常量或变量或其他用户自定义标示符:
| and | break | do | else |
| elseif | end | false | for |
| function | if | in | local |
| nil | not | or | repeat |
| return | then | true | until |
| while | goto |
一般约定,以下划线开头连接一串大写字母的名字(比如 _VERSION)被保留用于 Lua 内部全局变量。
全局变量
在默认情况下,变量总是认为是全局的。
全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil。
> print(b)
nil
> b=10
> print(b)
10
>
如果你想删除一个全局变量,只需要将变量赋值为nil。
b = nil print(b) --> nil
这样变量b就好像从没被使用过一样。换句话说, 当且仅当一个变量不等于nil时,这个变量即存在。
更多推荐


所有评论(0)