安装
官网下载最新版本
使用 yum 指令的 linux 版本 可以参考这篇
Debin / ubuntu 以下是简述版本
1 确认安装 libreadline-dev & libncurses5-dev
2 进入 lua 解压包文件夹 执行
make linux test
3 执行 安装
sudo make install
4 测试
lua -v
lua 文件格式 类似 shell 等脚本语言(lua 的优势就是嵌入其它代码)
.lua 后缀
文件开头 #!/usr/local/bin/lua
1 基本语法
- print(“hello world!”)
- – 单行注释
- –[[
多行注释
]]– - Lua 标示符用于定义一个变量,函数获取其他用户定义的项。标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9)。最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的
mohd zara abc move_name a_123
myname50 _temp j a23b9 retVal
- 默认变量都是全局的,删除全局变量只要赋值 nil; a = 10; a = nil; 局部变量 local 前缀即可
2 类型
1 nil 要加引号 print(type(X) == “nil”)
2 number 默认双精度型可修改(luaconf.h) 2 / 2.2 等都是 number 型
3 string 字符型 表示方式 ‘’ / “” / [[ ]] 都行 print(#“xx”) 计算长度 2
4 table 表格/数据用法类似(Map),{}; a = {}; a[“xx”] = “value”; xx = 10; a[xx] = 22;
for k, v in pairs(a) do print(k … “:” …v)
对表格索引
t[i]
t.i – 当索引为字符串类型时的一种简化写法
gettable_event(t,i) – 采用索引访问本质上是一个类似这样的函数调用
不同于其他语言的数组把 0 作为数组的初始索引,在 Lua 里表的默认初始索引一般以 1 开始
5 function 函数
function test(n)
if n == 0 then
return 1
else
return n * test(n - 1)
end
end
print(test(5))
test1 = test
print(test1(5))
匿名函数
function testFun(tab,fun)
for k ,v in pairs(tab) do
print(fun(k,v));
end
end
tab={key1="val1",key2="val2"};
testFun(tab,
function(key,val)--匿名函数
return key.."="..val;
end
);
6 thread 线程
7 userdata 自定义类型
循环
while()
for
repeat until 类似 do while
while( true )
do
print("循环将永远执行下去")
end
判断
if ()
then
print();
else
print();
end
函数
着重讲一下
可变参数 function add(…)
模块
-- 文件名为 module.lua
-- 定义一个名为 module 的模块
module = {}
-- 定义一个常量
module.constant = "这是一个常量"
-- 定义一个函数
function module.func1()
io.write("这是一个公有函数!\n")
end
local function func2()
print("这是一个私有函数!")
end
function module.func3()
func2()
end
return module
调用模块 require("module")
local m = require("module")
print(m.constant)
m.func3()
C 包 与 LUA
local path = “xx.so”
local f = assert(loadlib(path, “xxxxxx”)) --没有打开库
f() --打开库
之后就可以用 require 加载 C 库