lua-users home
lua-l archive

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


In the JavaScript world, Undescore provides several functions that do
this (in Lua syntax, even though he Lua port of Underscore lags
severely.):

    t1 = {foo="Wow"}
    _.extend(t1, {foo="Glop}, ...) -- mutates t1.

If you want a shallow copy, you can provide an empty table as first
argument. They also have _.clone, for convenience.

There's also _.default(). It also mutates its first argument, but
precedence is inverted.

    t1 = {foo="Wow"}
    _.default(t1, {foo="Gruuu",bar="Zim!"},{bar="Drep"})

t1 is now {foo="Wow",bar="Zim"}

-- Pierre-Yves

-- Pierre-Yves


On Fri, Dec 14, 2012 at 7:19 AM, Dirk Laurie <dirk.laurie@gmail.com> wrote:
> merge(...): returns a new table containing all the pairs from all the
>    tables given as arguments. In particular, if there is only one argument,
>    returns a shallow copy. In case of duplicate keys, later values
>    replace earlier ones. Nil arguments are treated as empty tables.
>
> The documentation is much longer than the code!
>