Lua基础
dofile命令
# lua
Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio
>dofile(file_name)
作用:可以同时打开两个窗口,一个窗口中使用文件编辑器编辑的代码(例如文件prog.lua),另一个窗口中使用交互模式运行Lua语言解释器。当修改完代码并保存后,只要在Lua语言交互模式的提示符下执行dofile("prog.lua")就可以加载新代码,然后就可以观察新代码的函数调用和执行结果
词法规范
Lua语言中的标识符(或名称)是由任意字母、数字和下画线组成的字符串(注意,不能以数字开头)。
“下画线+大写字母”(例如_VERSION)组成的标识符通常被Lua语言用作特殊用途,应避免将其用作其他用途。
Lua语言是对大小写敏感的,因而虽然and是保留字,但是And和AND就是两个不同的标识符。
注释
单行注释
Lua语言中使用两个连续的连字符(--)表示单行注释
多行注释
使用两个连续的连字符加两对连续左方括号表示长注释或多行注释的开始(直到两个连续的右括号为止,中间都是注释)
--[[
注释内容
--]]
使用技巧: 在注释内容为代码时,一般如下使用多行注释
--[[
num1=11
num2=12
--]]
取消注释,只需要在多行注释的开始添加“-”即可,使之变成两个单行注释
---[[
num1=11
num2=12
--]]
变量
全局标量
在Lua语言中,全局变量(Global Variable)无须声明即可使用,使用未经初始化的全局变量也不会导致错误。当使用未经初始化的全局变量时,得到的结果是nil。
当把nil赋值给全局变量时,Lua会回收该全局变量。
类型和值
Lua语言中有8种基本类型:nil(空)、boolean(布尔)、number(数值,5.3版本后加入了Integer类型)、string(字符串)、userdata(用户数据)、function(函数)、thread(线程)和table(表)。使用函数type可获取一个值对应的类型名称。
运算符
算术运算符
操作符 | 描述 | 实例 |
---|---|---|
+ | 加法 | A + B 输出结果 30 |
- | 减法 | A - B 输出结果 -10 |
* | 乘法 | A * B 输出结果 200 |
/ | 除法 | B / A w输出结果 2 |
% | 取余 | B % A 输出结果 0 |
乘幂 | A^2 输出结果 100 | |
- | 负号 | -A 输出结果v -10 |
// | 整除运算符(>=lua5.3) | 5//2 输出结果 2 |
关系运算符
操作符 | 描述 | 实例 |
---|---|---|
== | 等于,检测两个值是否相等,相等返回 true,否则返回 false | (A == B) 为 false。 |
~= | 不等于,检测两个值是否相等,相等返回 false,否则返回 true< | (A ~= B) 为 true。 |
大于,如果左边的值大于右边的值,返回 true,否则返回 false | (A > B) 为 false。 | |
< | 小于,如果左边的值大于右边的值,返回 false,否则返回 true | (A < B) 为 true。 |
>= | 大于等于,如果左边的值大于等于右边的值,返回 true,否则返回 false | (A >= B) is not true. |
<= | 小于等于, 如果左边的值小于等于右边的值,返回 true,否则返回 false | (A <= B) is true. |
逻辑运算符
操作符 | 描述 | 实例 |
---|---|---|
and逻辑与操作符 | 如果两边的操作都为true则条件为 true | (A and B) 为 false |
or逻辑或操作符 | 如果两边的操作任一一个为 true则条件为 true | (A or B) 为 true |
not逻辑非操作符 | 与逻辑运算结果相反,如果条件为true,逻辑非为 false | not(A and B) 为 true |
其他运算符
操作符 | 描述 | 实例 |
---|---|---|
.. | 连接两个字符串 | a..b ,其中a为 "Hello",b为 "World", 输出结果为 "Hello World"。 |
# | 一元运算符,返回字符串或表的长度。 | #"Hello" 返回 5 |