Jump to content

Recuperar objeto


Gw8

Recommended Posts

registro = {}
registro.__index = registro

function registro.new(nome,senha)
    local dados = {}
    setmetatable(dados,registro)
    dados.nome = nome
    dados.senha = senha
    return dados
end

function registro:name()
    outputDebugString(tostring(self.nome))
end

function registro:pw()
    outputDebugString(tostring(self.senha))
end

user1 = registro.new("gw8","1234")
user2 = registro.new("gw9","789654")

user1:name()
user2:name()

por exemplo neste código que eu criei aqui rapidinho, como eu devo fazer o inverso, tipo neste eu crio o objeto e pego as informações através dele, como eu faria para localizar o objeto através de uma determinada propriedade, tipo localizar o objeto user1 pelo nome dele que no caso eo "gw8".

Link to comment

deixa eu ver se eu entendi é que fiquei meio confuso com a forma que você nomeou, com objeto você quer dizer um valor da tabela certo ?

Bom eu não posso ajudar sem saber ao certo como você deseja fazer isso por ex por um comando ou algo assim.
mas vou lhe dar alguns exemplos que eu pensar no momento.

vejo que você esta fazendo um novo sistema de login..

function registro.login(nome)
  return registro.nome
end

Você só precisa fornecer a tabela e o nome do valor que você deseja recuperar eu não sei se este exemplo realmente será útil pois realmente não entendi muito bem oque você quer fazer

Link to comment

creio que vc entendeu o codigo, entao vo tenta explicar melhor, exemplo eu crio 1oo usuarios e nao salvei eles

for i =1,100 do

registro.new(tostring(i),1234)

end

como  eu recupero o usuario "10" sendo que nao salvei ele? trazer ele dnv pra fica salvo numa  variavel pra dps recuperar a senha... 

Link to comment
registro = {}
registro.__index = registro

function registro.new(name,senha)
    local new = {}

    new.name = name
    new.senha = senha
    setmetatable(new,registro)
    return new
end

function registro:obter()
   return self.name,self.senha
end

user1 = registro.new("gw8","1234")
user,pass = user1:obter()
outputChatBox(user.." "..pass)

user2 = registro.new("gw9","789654")
user,pass = user2:obter()
outputChatBox(user.." "..pass)

 

 

????????????????????????????????????????

Edited by ZL|LuCaS
Link to comment

Para fazer isso, você precisa armazenar todas as instâncias criadas pela classe

 

registro = {}
registro.__index = registro
registro.instances = {}

function registro.new(nome,senha)
    local dados = setmetatable({},registro)
    dados.nome = nome
    dados.senha = senha
	table.insert(registro.instances,dados)
    return dados
end

function registro:getName()
	return self.nome
end

function registro.getFromName(nome)
	for _, v in pairs(registro.instances) do
		if (v.nome == nome) then
			return v
		end
	end
end


for i=1,100 do
	registro.new(tostring(i),1234)
end

local account = registro.getFromName("10")
print(account:getName())

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...