Lua是一种轻量级、高效且灵活的脚本语言,广泛应用于游戏开发、嵌入式系统、网络应用等多个领域。以下是一些实用的Lua编程例子,可以帮助你从入门到精通Lua编程。1. 实现一个Complex复数结构Co...
Lua是一种轻量级、高效且灵活的脚本语言,广泛应用于游戏开发、嵌入式系统、网络应用等多个领域。以下是一些实用的Lua编程例子,可以帮助你从入门到精通Lua编程。
Complex = {}
function Complex:new(real, imag) local instance = {real = real, imag = imag} setmetatable(instance, Complex) return instance
end
function Complex:add(self, other) return Complex:new(self.real + other.real, self.imag + other.imag)
end
function Complex:subtract(self, other) return Complex:new(self.real - other.real, self.imag - other.imag)
end
function Complex:multiply(self, other) return Complex:new(self.real * other.real - self.imag * other.imag, self.real * other.imag + self.imag * other.real)
end
function Complex:divide(self, other) local denom = other.real^2 + other.imag^2 return Complex:new((self.real * other.real + self.imag * other.imag) / denom, (self.imag * other.real - self.real * other.imag) / denom)
end
-- 使用示例
local c1 = Complex:new(3.2, -5.1)
local c2 = Complex:new(7, 8)
local c3 = Complex:new(math.pi)
local c4 = Complex:new()
print((c1 + c4) / (c1 / c2 + c3))function JsonLoader:parse(inputfile) local f = io.open(inputfile, "r") local data = {} local key, value, obj for line in f:lines() do line = line:sub(2, -2) -- 移除首尾的双引号 key, value = line:match("(%a+)%s*:%s*([^,]+)") if key then value = tonumber(value) or value obj[key] = value end end return obj
end
-- 使用示例
local v = JsonLoader:parse("inputfile.json")
print(v[1].a) -- 输出: 100BaseObject = {}
function BaseObject:new() local instance = {} setmetatable(instance, BaseObject) return instance
end
function BaseObject:myFunc() print("Call BaseObject:myFunc")
end
function BaseObject:myFunc2() print("Call BaseObject:myFunc2")
end
-- 子类
ChildObject = {}
function ChildObject:new() local instance = BaseObject:new() instance.myFunc = function(self) print("Call ChildObject:myFunc") end return instance
end
-- 测试
local obj = ChildObject:new()
obj:myFunc() -- 输出: Call ChildObject:myFunc
obj:myFunc2() -- 输出: Call BaseObject:myFunc2function rollDice() return math.random(1, 6)
end
-- 使用示例
for i = 1, 5 do print("Rolling dice #" .. i .. ": " .. rollDice())
end通过以上例子,你可以逐步了解Lua编程的基础知识、复杂数据结构、面向对象编程以及游戏开发等方面的应用。不断实践和探索,你将掌握Lua编程并能够将其应用于各种项目中。