打印
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('------------')