/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/lua/lua-515-171-027/main.lua
52 строки
1 KB
Spirzen
OOP
09 июн 2026, 20:58
09 июн 2026, 20:58
1dca232
Код
Авторство
О чём код?
local Product = {} function Product:new(name, price) local obj = setmetatable({name = name, price = price}, {__index = self}) return obj end local Cart = {} function Cart:new() local obj = setmetatable({items = {}}, {__index = self}) return obj end function Cart:add(product) table.insert(self.items, product) print("В корзину добавлено: " .. product.name .. " (" .. product.price .. " ₽)") end function Cart:total() local sum = 0 for _, p in ipairs(self.items) do sum = sum + p.price end return sum end local Order = {} function Order:new(cart) local items = {} for _, item in ipairs(cart.items) do table.insert(items, item) end local obj = setmetatable({items = items, total = cart:total()}, {__index = self}) return obj end function Order:checkout() print("Оформление заказа...") for _, item in ipairs(self.items) do print(" — " .. item.name .. ": " .. item.price .. " ₽") end print("Итого: " .. self.total .. " ₽") print("Заказ оформлен!") end local cart = Cart:new() cart:add(Product:new("Книга", 500)) cart:add(Product:new("Ручка", 50)) local order = Order:new(cart) order:checkout()