repeat83

обработка как табличного запроса так и запроса методом

Feb 23rd, 2014
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.21 KB | None | 0 0
  1. #!/usr/bin/lua
  2.  
  3. function methods_getparam(self,...)
  4.   local _ = {...};
  5.   if (_[1] == self) then table.remove(_,1); end
  6.   return unpack(_)
  7. end
  8.  
  9. host = {}
  10. host.new = function(id, name)
  11.   local self = {}
  12.  
  13.   self[id] = {}
  14.   self[id].name = name or "default"
  15.  
  16.   self.GetIdByName = function(...)
  17. --    local _ = {...}; if (_[1] == self) then table.remove(_,1); end
  18. --    local searchname = unpack(_)
  19.     local searchname = methods_getparam(self,...)
  20.     for id,t in pairs(self) do
  21.       print(id,t.name)
  22.     end
  23.     return id
  24.   end
  25.  
  26.   self.SetName = function(...)
  27. --    local _ = {...}; if (_[1] == self) then table.remove(_,1); end
  28. --    local id, newname = unpack(_)
  29.     local id, newname = methods_getparam(self,...)
  30.     self[id].name = newname
  31.   end
  32.  
  33.   self.GetName = function(...)
  34. --    local _ = {...}; if (_[1] == self) then table.remove(_,1); end
  35. --    local id = unpack(_)
  36.     local id = methods_getparam(self,...)
  37.     return self[id].name or false
  38.   end
  39.  
  40.   return self
  41. end
  42.  
  43. hosts = host.new(5)
  44.  
  45. print(hosts.GetName(5))
  46. print(hosts:GetName(5))
  47. hosts.SetName(5,"asd")
  48. print(hosts.GetName(5))
  49. print(hosts:GetName(5))
  50. hosts:SetName(5,"qwe")
  51. print(hosts.GetName(5))
  52. print(hosts:GetName(5))
Advertisement
Add Comment
Please, Sign In to add comment