Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ООП в Lua. / 5 сообщений из 5, страница 1 из 1
08.10.2012, 01:48
    #37987389
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ООП в Lua.
Сабж кто юзал? Вроде напрямую нет но как-то хитро через работу с таблицей вирт. функций.
Но где она как сущность еще не раскурил. И как с ней работать.

Читаю тут.

http://lua-users.org/wiki/ObjectOrientationTutorial
...
Рейтинг: 0 / 0
08.10.2012, 11:21
    #37987744
kolchanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ООП в Lua.
Простейший пример


TestClass = {}

function TestClass:new(data)
-- .............. какая то логика и проверки
local self = {
ID=data.ID,
}

function self:printId()
print(self.ID)
end

return setmetatable(self, {})
end

local tst = TestClass:new ({ID=10500})
tst:printId()
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.04.2017, 13:21
    #39446065
alexandrich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ООП в Lua.
Вот пример с наследованием

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
--Элемент
Element = {}

function Element:new(row, column, text)                        
	local newObj = {}               
	newObj.Row = row or 0
	newObj.Column = column or 0
	newObj.Text = text or ''

	function Element:tostring()
		return 'row='..self.Row..';column='..self.Column..';Text='..self.Text
	end
	
	self.__index = self                     
	return setmetatable(newObj, self)       
end


--Элемент кнопка
ButtonElement = {}
--наследуем
setmetatable(ButtonElement ,{__index = Element}) 

function ButtonElement:new(row, column, text, color)
	local newObj = Element:new(row, column, text)
	newObj.Color = color or ''

	function ButtonElement:tostring()
		return Element.tostring(self)..';Color='..self.Color
	end

	self.__index = self
	return setmetatable(newObj, self)
end
...
Рейтинг: 0 / 0
28.04.2017, 13:24
    #39446071
alexandrich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ООП в Lua.
проверка
btn = ButtonElement:new(0,9,'new btn','gray')
print(btn:tostring())
...
Рейтинг: 0 / 0
03.05.2017, 11:34
    #39447765
alexandrich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ООП в Lua.
Версия с разбивкой по модулям
Добавлена коллекция элементов
Добавлена отрисовка элементов в консоль
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ООП в Lua. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]