Lua安装及常用命令使用

2022-11-20 10:14:11 浏览数 (1)

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,执行如下命令:

代码语言:javascript复制
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的流程判断语法。

代码语言:javascript复制
> function userinfo(age)
>> if age>=18 then
>> return "成年人"
>> else
>> return "未成年"
>> end
>> end
> print(userinfo(17))
未成年

2.8 脚本编程

我们可以像写java一样,将lua脚本写到一个文件中,并且可以在一个脚本文件引入另外一个脚本文件,类似java中的导包。 创建course.lua,代码如下:

代码语言:javascript复制
--定义一个对象
local course = {}

--定义一个方法
function course.courseName(id)
        if id==1 then
                return "java"
        else
                return "UI"
        end
end
return course

创建student.lua,代码如下:

代码语言:javascript复制
--导入course.lua
local cr = require("course")

--调用courseName方法
local result = cr.courseName(1)

print(result)

执行student.lua

代码语言:javascript复制
[root@server1 lua]# lua student.lua
java

0 人点赞