Добро пожаловать на BlackSAMP - ФОРУМ

  • Приватные и секретные разделы доступны только зарегистрированным пользователям.

    Вся важная информация в нашем ТГ: t.me/gtablack

    На данном форуме запрещено публиковать контент нарушающий Российское законодательство, за это последует блокировка ФА.

Таблично-ориентированное программирование в lua

Количество просмотров: 94
Уровень сложности
Легко

DarkPhantom

Администратор
Администратор
Регистрация
18 Авг 2024
Сообщения
151
Решения
4
Реакции
30
Баллы
28
Все мы знаем , что в языке программирования LUA(Луна) нет классов , как в привычных нами С++, Java, JS, Python.
Вместо классов в LUA есть таблицы .
Таблицы чем-то напоминают структуры в C/C++/C#/Go/Rust и других языках .
Структура с C:
C:
struct Person{
   char name[50];
   int age;
};
Давайте реализуем таблицу на lua
JavaScript:
Person = {};

function Person:new(name, age)
   local obj = {name = name, age = age}; -- Создаём таблицу с параметрами
   setmetatable(obj, self); -- Устанавливаем ей метатаблицу для ООП поведения
   self.__index = self; -- Направляем поиск полей
   return obj;
end;
function Person:introduce()
    print("Меня зовут " .. self.name .. ", мне " .. self.age .. " лет.");
end;
local person1 = Person:new("Дима", 19);
person1:introduce();
Тут:
- Используем setmetatable(obj, self) для установки метатаблицы, позволяющей объекту наследовать методы класса.
- self.__index = self заставляет Lua искать отсутствующие поля в Person.
- Метод introduce() позволяет объекту представляться.
 

DarkPhantom

Администратор
Администратор
Регистрация
18 Авг 2024
Сообщения
151
Решения
4
Реакции
30
Баллы
28
Я думаю , что тут все элементарно.
Но зачем ?
ООП в Lua помогает структурировать код, упрощая поддержку и расширение. Это удобно для модульности, наследования и повторного использования.
 
Сверху Снизу