基本语法


打印

print("Hello World!")

注释

-- 单行注释

--[[
 多行注释
 多行注释
 --]]

变量

b='你好'
print(b)

lua数据类型

b='你好'
-- # 可以用于计算字符串长度
print(#b)

-- 直接初始表
local tbl2 = {"apple", "pear", "orange", "grape"}
-- 打印表
for k, v in pairs(tbl2) do
    print(k .. " : " .. v)
end
print("-----------------")
-- Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字或者是字符串。
tbl2["test"] = 'people'
-- 重新打印
for k, v in pairs(tbl2) do
    print(k .. " : " .. v)
end

打印结果

1 : apple
2 : pear
3 : orange
4 : grape
-----------------
1 : apple
2 : pear
3 : orange
4 : grape
test : people

不同于其他语言的数组把 0 作为数组的初始索引,在 Lua 里表的默认初始索引一般以 1 开始。

table 不会固定长度大小,有新数据添加时 table 长度会自动增长,没初始的 table 都是 nil。

函数

-- 定义一个函数
function factorial1(n)
    -- 判断n是否为0,如果为0那么就返回1
    if n == 0 then
        return 1
    else
        -- 否则我们就往下乘
        return n * factorial1(n - 1)
    end
end
-- 计算5的阶乘
print(factorial1(5))
-- 函数赋值
factorial2 = factorial1
print(factorial2(6))
---------- 运行结果
120
720

变量

-- 字符串拼接
a =  "hello" .. "world"
print(a)
--  多对多赋值
b, c = 10, 2*2
print(b,c)
-- 表格调用
d = {1,2}
d['a'] = 666
print(d[1])
-- 如果是a,那么就直接用.
print(d.a)

循环

a=1
-- while循环
while( a < 5 )
do
    print("a 的值为:", a)
    a = a+1
end
print('-----------')
-- for循环
-- var 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 var,并执行一次 "执行体"。exp3 是可选的,如果不指定,默认为1。
for i=5,1,-1 do
    print(i)
end
print('------------')
-- for循环遍历数组
days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}
for i,v in ipairs(days) do  print(v) end
print('------------')
-- repeat循环
a=1
repeat
    print("a的值为:", a)
    a = a + 1
until( a > 5 )
print('------------')

文章作者: 小游
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小游 !
  目录