Linux下安装Lua,基础入门

学不可以以已


最近自己写项目的时候用到了lua,以此写一下。

Linux下安装Lua环境

# 安装lua需要的目录依赖
yum install libtermcap-devel ncurses-devel libevent-devel readline-devel
# 安装lua环境
curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz #
# 解压文件
tar zxf lua-5.3.5.tar.gz
# 移动到目标目录 
cd lua-5.3.5
# 创建测试文件
make linux test
# 测试是否安装成功
[root@localhost ~]# lua
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio

成功!!
在这里插入图片描述

入门程序

创建hello.lua文件,内容为:

编辑文件hello.lua

vi hello.lua

内容为:

print(“hello”);

执行命令:

lua hello.lua

Hello

LUA的基本语法

Lua有2种编程模式:一种是交互式编程,使用命令lua -i

lua -i

另一种是脚本式编程,即创建一个XXXX.Lua脚本

注释

单行注释,2个-

多行注释

–[[
多行注释
多行注释
–]]

定义变量

– 全局变量赋值
a=1
– 局部变量赋值
local b=2

变量的初始值为nil

Lua中的数据类型

Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。

数据类型描述
nil这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于false)。
boolean包含两个值:false和true。
number表示双精度类型的实浮点数
string字符串由一对双引号或单引号来表示
function由 C 或 Lua 编写的函数
userdata表示任意存储在变量中的C数据结构
thread表示执行的独立线路,用于执行协同程序
tableLua 中的表(table)其实是一个“关联数组”(associative arrays),数组的索引可以是数字、字符串或表类型。在 Lua 里,table 的创建是通过“构造表达式”来完成,最简单构造表达式是{},用来创建一个空表。

流程控制

(1)if语句

if(布尔表达式)
then
–[ 在布尔表达式为 true 时执行的语句 --]
end

(2)if…else语句

if(布尔表达式)
then
–[ 布尔表达式为 true 时执行该语句块 --]
else
–[ 布尔表达式为 false 时执行该语句块 --]
end

实例:

– 定义变量
a = 100;
– 检测条件
if (a < 20)
then
print(“a 小于20”);
else
print(“a 大于 20”);
end

循环

(1)while循环

while(condition)
do
statements
end

(2)for循环

语法: 1->10 1:exp1 10:exp2 2:exp3:递增的数量

for var=exp1,exp2,exp3
do
<执行体>
end

(3)while do

repeat
statements
until( condition

函数

–[[ 函数返回两个值的最大值 --]]
function max(num1, num2)

if (num1 > num2) then
result = num1;
else
result = num2;
end

return result;
end
– 调用函数
print("两值比较最大值为 ",max(10,4))
print("两值比较最大值为 ",max(5,6))

– 初始化表
mytable = {}
– 指定值
mytable[1]= “Lua”
– 移除引用
mytable = nil

模块

(1)模块定义

模块类似于一个封装库,从 Lua 5.1 开始,Lua 加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。

– 文件名为 module.lua
– 定义一个名为 module 的模块
module = {}
– 定义一个常量
module.constant = “这是一个常量”
– 定义一个函数
function module.func1()
print(“这是一个公有函数”)
end
local function func2()
print(“这是一个私有函数!”)
end
function module.func3()
func2()
end
return module

(2)引用模块

require("<模块名>")

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值