lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On 13-6-2012 20:14, Roberto Ierusalimschy wrote:
Concerning (2): not all types have metatables so boolean is still
somewhat of a problem then. (I can live with it.)

We can use the metatables for strings (if at least one argument is
a string)! This already works both in 5.1 and 5.2:

mt = getmetatable("")

mt.__concat = function (a,b)
   return tostring(a) .. tostring(b)
end

print("result: " .. {})     --> result: table: 0x8172130
print(false .. " x " .. true)  --> false x true

interesting, so what is the trick for

local t = { 1, 2, "test", true }

print(table.concat(t))



-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
    tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
                                             | www.pragma-pod.nl
-----------------------------------------------------------------