当前位置:网站首页>Lua安装及常用命令使用
Lua安装及常用命令使用
2022-08-02 02:56:00 【向着百万年薪努力的小赵】
1 Lua安装
首先我们准备一个linux虚拟机来安装Lua,在linux系统中按照如下步骤进行安装:
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 来启用:
[[email protected] lua-5.3.5]# lua -i
Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
>
2.1 打印
print("springcloud alibaba")
2.2 数据类型
测试一下:
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 变量有三种类型:全局变量、局部变量、表中的域。
全局变量定义:
> age=19
> print(age)
19
局部变量定义:
> local username=wangwu
> print(username)
nil
此时username不是全局变量,一般在某个方法中使用,不能全局使用,所以输出nil。
2.4 对象
> --定义对象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之前有返回值,也可以有入参,定义一个方法如下:
> --定义userinfo方法,入参为age
> function userinfo(age)
>> --age在原有基础上+1
>> age=age+1
>> --返回变化后的age
>> return age
>> --结束
>> end
> print(userinfo(19))
20
2.6 拼接
在上面方法调用上拼接一段字符串,可以使用亮点来做…,如下:
> 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
:
[[email protected] lua]# lua student.lua
java
边栏推荐
- 架构:应用架构的演进以及微服务架构的落地实践
- 7-42 整型关键字的散列映射 (25 分)
- 知识体系树
- MySQL8--Windows下使用压缩包安装的方法
- CentOS7安装Oracle数据库的全流程
- analog IC layout-Design for reliability
- [Daily LeetCode]——1. The sum of two numbers
- ReentrantLock工作原理
- feign调用不通问题,JSON parse error Illegal character ((CTRL-CHAR, code 31)) only regular white space (r
- VPS8504C 微功率隔离电源隔离芯片 VPSC源特科技
猜你喜欢
Nacos source code analysis topic (1) - environment preparation
Flask之路由(app.route)详解
2W字!详解20道Redis经典面试题!(珍藏版)
Difference between #{} and ${}
WebShell连接工具(中国菜刀、WeBaCoo、Weevely)使用
Navicat cannot connect to database Mysql because of WiFi
数仓:为什么说 ETL 的未来不是 ELT,而是 EL (T)
MySQL索引优化实战
Go语学习笔记 - gorm使用 - gorm处理错误 Web框架Gin(十)
#{}和${}的区别
随机推荐
【LeetCode】104.二叉树的最大深度
【LeetCode】1374. 生成每种字符都是奇数个的字符串
有人知道HTML怎么到MYSQL数据库吗? (NODEJS)
KICAD 小封装拉线卡顿问题 解决方法
MySQL8.0.26安装配置教程(windows 64位)
DVWA安装教程(懂你的不懂·详细)
给你一个大厂面试的机会,你能面试上吗?进来看看!
2W字!梳理50道经典计算机网络面试题(收藏版)
MySQL8.0.28安装教程
WebShell特征值汇总与检测工具
KICAD 拉线宽度无法修改,解决方法
【每日一道LeetCode】——1. 两数之和
2022.8.1-----leetcode.1374
微服务:微智能在软件系统的简述
7-41 PAT排名汇总 (25 分)多样排序
直击程序员面试现场:百度面试官都问了我些啥?
【LeetCode】20. Valid parentheses
WebShell Feature Value Summary and Detection Tool
node:internal/modules/cjs/loader:936 throw err; ^ Error: Cannot find module ‘./scope‘
Reasons and solutions for Invalid bound statement (not found)