1 Lua安装
首先我们准备一个linux虚拟机来安装Lua,在linux系统中按照如下步骤进行安装:
代码语言:javascript复制curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz
tar xf lua-5.3.5.tar.gz
cd lua-5.3.5
make linux test
出现如下界面,表示安装成功:
版本查看:lua -v
我们可以发现,Lua版本还是原来系统自带的版本5.1.4,我们需要替换原来系统自带的lua,执行如下命令:
rm -rf /usr/bin/lua
ln -s /usr/local/gupao/lua-5.3.5/src/lua /usr/bin/lua
此时版本信息如下:
2 Lua常用操作
Lua 提供了交互式编程模式。我们可以在命令行中输入程序并立即查看效果,这种编程模式类似我们控制台操作,Lua 交互式编程模式可以通过命令 lua -i 或 lua 来启用:
代码语言:javascript复制[root@server1 lua-5.3.5]# lua -i
Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
>
2.1 打印
代码语言:javascript复制print("springcloud alibaba")
2.2 数据类型
测试一下:
代码语言:javascript复制print(type("Hello world")) --> string
print(type(10.4*3)) --> number
print(type(print)) --> function
print(type(type)) --> function
print(type(true)) --> boolean
print(type(nil)) --> nil
print(type(type(X))) --> string
2.3 变量
变量在使用前,需要在代码中进行声明,即创建该变量。Lua 变量有三种类型:全局变量、局部变量、表中的域。 全局变量定义:
代码语言:javascript复制> age=19
> print(age)
19
局部变量定义:
代码语言:javascript复制> local username=wangwu
> print(username)
nil
此时username不是全局变量,一般在某个方法中使用,不能全局使用,所以输出nil。
2.4 对象
代码语言:javascript复制> --定义对象resp
> resp = {}
> --往对象resp中添加属性name,赋值为zhangsan
> resp["name"]="zhangsan"
> --往对象resp中添加属性address,赋值为hunanchangsha
> resp["address"]="hunanchangsha"
> --输出对象resp中的name属性值
> print(resp["name"])
zhangsan
2.5 函数
创建一个函数,其实就是创建一个方法,函数以function开始,end结束,可以在end之前有返回值,也可以有入参,定义一个方法如下:
代码语言:javascript复制> --定义userinfo方法,入参为age
> function userinfo(age)
>> --age在原有基础上 1
>> age=age 1
>> --返回变化后的age
>> return age
>> --结束
>> end
> print(userinfo(19))
20
2.6 拼接
在上面方法调用上拼接一段字符串,可以使用亮点来做…,如下:
代码语言:javascript复制> print(userinfo(19).."岁了")
20岁了
2.7 逻辑判断
我们经常会做一些条件判断,在lua中也可以实现,lua中有if xx then else end
的流程判断语法。
> function userinfo(age)
>> if age>=18 then
>> return "成年人"
>> else
>> return "未成年"
>> end
>> end
> print(userinfo(17))
未成年
2.8 脚本编程
我们可以像写java一样,将lua脚本写到一个文件中,并且可以在一个脚本文件引入另外一个脚本文件,类似java中的导包。
创建course.lua
,代码如下:
--定义一个对象
local course = {}
--定义一个方法
function course.courseName(id)
if id==1 then
return "java"
else
return "UI"
end
end
return course
创建student.lua
,代码如下:
--导入course.lua
local cr = require("course")
--调用courseName方法
local result = cr.courseName(1)
print(result)
执行student.lua
:
[root@server1 lua]# lua student.lua
java