[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Matter of class/instance form/function...
- From: Ben <thebassplayer@...>
- Date: Sat, 15 Sep 2007 23:27:46 -0700
> t.__index = c
> setmetatable(t,t)
>
> setmetatable(t,{__index=c})
>
> setmetatable(t,c)
I use some combo of the 1st and 3rd--or maybe just the 3rd. If I have
a metatable that I'm going to reuse, I usually follow the format:
local mt = {}
mt.__index = table
mt.__tostring = function (t, s) return table.concat(t, s or ", ") end
-- etc. --
setmetatable(table, mt)
-- and further settings --
In addition to the general format of above, I also use the idiom
setmetatable(a, getmetatable(b))
quite often.
The 2nd example I do use on occasion, mostly when hacking
quick/throwaway scripts, and then I'll use the previously-mentioned
idiom to reuse the metatable if I need to.
(In other news, I'm new! My name is Ben. I've been lurking for a
couple weeks, and I saw this thread and thought, "Hey, something I can
actually comment on!" I've been using Lua quite a lot recently, with
it just about surpassing Python by now. I enjoy its clean simplicity
and excellent C API. I guess I could say more, but I don't want to
get too OT, and I'm not sure about your policy on intro threads. You
seem friendly enough, though!)
Cheers,
Ben