Caros,
Como definir propriedades nos modelos de orientação a objetos de Lua?
Até onde sei, há quatro formas de se implementar POO em Lua:
1. Manipulando diretamente tables e metatables;
2. Utilizando Classlib;
3. Utilizando LOOP;
4. Utilizando LOS.
A bem dizer, as 3 bibliotecas parecem realmente muito, muito boas e consegui criar classes com todas elas. Contudo, se quero, por exemplo, definir uma propriedade "tamanho" para uma classe "cachorro", penso que teria de fazer algo mais ou menos assim:
setmetatable(cachorro, {__index = function(t, k)
if k == 'tamanho' then
return function SetTamanho(K)
end
end}
"SetTamanho" seria o setter da propriedade.
Bom, é claro que algo mais ou menos assim pode ser feito. Mas pergunto? em LOS, em LOOP ou Classlib há algo mais elegant e nativo que implemente o uso de propriedades?
Luciano de Souza
http://lua-users.org/wiki/ObjectProperties
http://www.lua.org/pil/16.4.html
http://lists.luaforge.net/pipermail/loop-users/2009-February/000004.html
--
Renato Maia
Computer Scientist
Tecgraf/PUC-Rio
__________________________
http://www.inf.puc-rio.br/~maia/
> para começar com Loop, alguém sabe onde tem um tutorial pra
> implementar??
Não sei se é o que procuras, mas veja:
http://loop.luaforge.net/manual/index.html
De qualquer forma, recomendo enfaticamente que se aprenda Lua antes.
Ler as partes I e II do livro do Roberto (www.lua.org/pil2) é o ideal.