Lua
本页面编写未完成,但已停止更新。有意向的用户可以继续更新本页并移除此模板。 |
Lua(luːə)程序设计语言是一个简洁(易于编辑)、轻量、可扩展的脚本语言。纯粹的Lua是进行一些运算并向控制台输出文本。本教程主要包括了如何使用Lua、Lua的语法,以及自带的一些功能,还有MediaWiki中使用Lua模块的方法。
使用Lua语言
[编辑]安装使用
[编辑]搭建环境
[编辑]Lua安装、源代码可以在Lua官网(英文)下载。这需要使用C++语言,操作较为复杂。安装方法可以参见官方网站(英文)。可以按照Lua官网上的集成方法,如lua.exe和luac.exe。以lua.exe为例,直接打开lua.exe可以进行交互式编程;或者设置环境变量,然后在命令行窗口中输入lua进行交互式编程(按Ctrl+C可退出解释器),或者输入“lua 文件地址”运行Lua。文件地址可以从资源管理器选择文件,然后拖动到cmd窗口。
以下是Lua的命令行窗口的交互式编程模拟图:
> print"你好,世界!" 你好,世界!
>直接用lua.exe打开lua文件也行,但是文件运行完成后就会立即关闭窗口(python也是如此)。因此可以使用io.read()
或while true do end
使其不会运行结束。
使用第三方软件
[编辑]LuaStudio软件也比较适用,但是只支持Lua 5.1,版本太旧,并且只有30天试用期。破解版可以破解试用期,但是不稳定,易崩溃。其他可用于编辑Lua的软件有Script.net、SciTE(但都只适用于较旧的版本),以及EmmyLua(基于其他的软件,安装困难,且有点吃内存)。推荐使用Subline Text
使用在线编辑运行
[编辑]此外也可以在网站上在线输出,该网站使用的Lua通常是最新版的,需要开启JavaScript(默认是开启的),并且不需要安装任何扩展组件。
输出
[编辑]Lua程序的基本内容,就是通过计算,将值输出到控制台上。这需要使用到自带函数print()
[注 1]。
这是一个最简单的Lua:
print"你好,世界!"
执行后,你将会在控制台上看见以下内容:
你好,世界!
有时,我们可以用类似于cmd窗口的格式运行Lua。这种称为“交互式编程”。带>
号的表示输入的内容,不带>
号的表示输出的内容。这种方法往往更加及时,输入一行即可执行一行。这种方法与使用Lua文件有些不同,例如可以直接在第一行加一个等号以表示输出,或者连等号都不要,直接是表达式(仅限于较新版本的Lua)。如果一行是一个函数调用,不管函数进行什么操作,只要它返回了值,就会显示返回的值。
>"你好,世界!"
你好,世界!
>a="你好,世界!"
>print(a)
你好,世界!
变量及数据类型
[编辑]Lua的函数需要对数据进行运算,最后输出文字。在运算过程中,我们可以给一些数据赋值(也叫创建变量)。这样,我们可以在多处重复使用一个数据,并对数据进行复杂的运算。
相关定义
[编辑]例如,这个简单的表达式:x=5
。它的意思是给变量x赋值为5,或者说是将变量x的值(由nil)修改为5。
在这里,x是标识符(也叫名称),5是它的值。等于号就是给数据赋值,它属于一个操作。
变量
[编辑]变量用不带引号的英文字母、数字和下划线表示,且不能以数字开头,例如上面的x
。
对于一个表(下面会学到),它的域也属于变量。具体请参见表段落。
值
[编辑]值拥有数据类型。在计算中,软件就会将它的值代入变量以进行计算。例如x变量的值为5,那么x+1的值就是6(因此表达式也可以有值,这个值就是它的计算结果)。print(x+1)
就会在控制台上输出文字6。
全局变量与局部变量
[编辑]变量分为全局变量、局部变量和表中的域。全局变量就是在整个Lua文件中赋值,在赋值后的任何地方都起效果。需要注意的是,Lua文件像JavaScript一样,是从前往后按步骤计算。
局部变量是在某一个具有开始、结束的代码块中使用的,只在这个范围中有效,超出这个范围之后就是nil或者其他的全局或局部变量。
do
local x=2
print(x) -- 会输出2
end
print(x)
--会输出nil
表的用法见表段落。
类型
[编辑]Lua的变量的值有以下这些类型:空、布尔、数字、字符串、用户自定义、函数、线程和表。MediaWiki中的Lua不能使用用户自定义和线程,因此本书主要介绍几种较主要的数据类型。
空
[编辑]空表示这个变量不存在(未创建或者已经删除),我们用nil表示它。凡是不存在的变量都是nil。赋值(创建变量)的实质就是将变量的值由nil修改为存在的值,删除变量的实质就是将变量的值由存在的值修改为nil。如果创建一个表,那么所有的没有定义的域的值都会是nil。
数字
[编辑]数字是描述一个大小的值,可正可负。数字又分为两种:整数与浮点数。
布尔值
[编辑]布尔值描述一个数据是真还是假,通常用表达式得出,可用true或false表示,并用于一些逻辑运算。需要注意,对于其他类型的值,在逻辑运算中,只有nil和false会视为假。
字符串
[编辑]字符串描述一行或多行文字。可以用"字符串内容"
(半角双引号围住)、'字符串内容'
(半角单引号围住)、[[字符串内容]]
(两层中括号)或[===[字符串内容]===]
(夹杂等号的中括号)表示。用引号表示的字符串可以使用"\n"
、"\a"
等转义符号。
表
[编辑]表可以有规律地储存多个值。每一个表都分为一个、多个或零个字段(field),字段包括键(key)和值(value)。
函数
[编辑]函数是Lua的另一种数据,用于调用。
- ↑
io.write()
等函数也是可用的
相关链接
[编辑]
|