目录

Lua脚本

一些 lua 笔记。

安装与测试

$sudo apt-get install lua5.3  # 安装 
-- test.lua
print("Hello lua")
$ lua test.lua 
Hello lua

基本语法

-- 数据类型, 每个声明的变量都带有 类型 信息
nil            
boolean        -- false true
number        -- 双精度类型浮点数
string        -- 字符串
function    -- 由 C 或 Lua 编写的函数
userdata    -- 表示任意存储在变量中的C数据结构
thread        -- 表示执行的独立线路,用于执行协同程序
table        -- 关联数组,索引可以是number、string 或 table

a = 10 -- 声明变量

print(type(true)) -- 查看类型
print(type(nil))
-- 遍历
tab1 = { key1 = "val1", key2 = "val2", "val3" }
for k, v in pairs(tab1) do
    print( k .. ":" .. v) -- .. 是字符串链接符
end

tab1.key1 = nil -- nil 可用于删除变量,或者说赋值为 nil 等同于删除
-- 条件表达式
if false or nil then
    print("至少有一个是 true")
else
    print("false 和 nil 都为 false")
end

--  false 和 nil 看作是 false,其他的都为 true 包括 0
if 0 then
    print("数字 0 是 true")
else
    print("数字 0 为 false")
end
-- 函数
function factorial1(n)
    if n == 0 then
        return 1
    else
        return n * factorial1(n - 1)
    end
end
print(factorial1(5)) -- 120
fn = factorial1
print(fn(6)) -- 720
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);