续上一篇,lua环境搭建完毕后,我们来了解它的一些基础的方法和语法。
在lua的安装目录下,找到docs目录,里面有一个lua的帮助手册,里面有非常详细的api以及语法方面的记载。
打开手册后我们点击搜索
搜索contents,找到Lua 5.1 Reference Manual - contents
可以看到这里给了非常详细的分类列表,包括Lua中的库方法、提供给C函数调用的api、辅助库等,需要查找的时候会比较方便。
(1)变量
lua中有8中基础类型,nil(空)、boolean(布尔)、number(数字)、string(字符串)、userdata(自定义类型)、function(函数)、thread(线程)、table(表)。
lua中变量的声明与定义:
这两种对变量的定义都是合法的,都会有如下输出,区别在于未使用local关键字声明的变量将会是全局变量,而使用了local关键字声明的变量是局部变量,其余的.lua文件将不能顺利地访问。
上述输出
(2)表达式
1、%-取模操作符
%是Lua的取模操作符,它是根据a%b == a- floor(a/b)*b的规则来定义的,对于整数来说,这个算式的计算结果的符号永远与第二个参数相同;对于实数,则可能有其他用途,例如,x%1的结果就是x的小数部分,而x-x%1的结果就是其整数部分。类似的,x-x%0.01则是x精确到小数点后两位的结果
输出
注意c++中是不允许小数%整数的,但是lua中可以
2、^-指数操作符
在lua中,^表示指数操作符而不是异或操作符,注意这点和c++不一样,比如a^0.5表示a的平方根,x^(-1/3)将计算x立方根的倒数
输出
3、~= 不等操作符(关系运算符)
在lua中用~=表示不等于,比如a不等于b可以用a~=b表示
4、and 、or、not 逻辑操作符
逻辑操作符将false和nil视为假,将其他任何东西都视为真。对于操作符and来说,如果它的得一个操作数为假,就返回第一个操作数;不然返回第二个操作数。对于操作符or来说,如果它的第一个操作数为真,就返回第一个操作数;不然返回第二个操作数。
输出
(3)注释
Lua中使用"--"或"[[ ]]"来注释代码,其中"[[ ]]"是块注释,使用一对匹配的双方括号来界定一个字母字符串。以这种形式书写的字符串可以延伸多行,Lua不会解释其中的转义序列。
输出
(4)赋值
Lua的赋值没有太严格的格式要求,使用一个变量都可以不用声明,以下示例的程序都是合法的
输出
(5)if else 语句
Lua的if else语句必须要包含then和end这两个关键字,否则会报错(即使只有一个if也需要包含then和end)
输出
(6)循环
输出
(7)迭代
输出
注意ipairs对于key值为string类型的迭代遍历无效
示例
输出
pairs对于key值为string类型的遍历仍有效
示例
输出
(8)数字与字符串的相互转换
数字转字符串
输出
纯数字的字符串转数字
输出
数字和字符串的隐式转换
输出
输出
以此类推