Lua语言基础
基础语法
-- 变量(默认全局)
x = 10
local y = 20 -- 局部变量
-- 字符串
local s = "hello " .. "world" -- 拼接
local len = #s -- 长度
-- 多返回值
local function minmax(a, b)
return math.min(a,b), math.max(a,b)
end
local lo, hi = minmax(5, 3) -- lo=3, hi=5
表(数组和映射)
-- 数组(从1开始!)
local arr = {10, 20, 30}
print(arr[1]) -- 10
table.insert(arr, 40)
table.remove(arr, 1)
-- 字典
local user = {name = "Alice", age = 28}
user.email = "alice@example.com"
print(user["name"])
-- 遍历
for i, v in ipairs(arr) do print(i, v) end
for k, v in pairs(user) do print(k, v) end
元表实现面向对象
local Animal = {}
Animal.__index = Animal
function Animal.new(name, sound)
return setmetatable({name=name, sound=sound}, Animal)
end
function Animal:speak()
print(self.name .. " says " .. self.sound)
end
local dog = Animal.new("Dog", "Woof")
dog:speak() -- Dog says Woof
标准库
| 模块 | 常用函数 |
|---|---|
| string | len, sub, find, gsub, format, upper, lower |
| table | insert, remove, sort, concat, unpack |
| math | floor, ceil, sqrt, max, min, random, pi |
| io | read, write, open, close, lines |
| os | time, date, clock, exit, getenv |