lua-users home
lua-l archive

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

> Some people feel it is wrong to say so, but if it helps you to
> understand the Lua model, then you can think that complex objects
> (tables and userdata) are always passed/copied by reference, whereas
> simple objects (numbers, strings, etc.) are always passed/copied by
> value.

> A different way to think of things is slightly more removed from how
> things are in C. Consider the set of values, and the set of variables
> to be separate, and think of variables as binding to values. In your
> first example, a is bound to the value 10, then b is bound to 10, then
> b is bound to 11. In your second example, In your second example, you
> create a table value, bind the "member" field of this table to 10,
> then bind the variable a to this table. Then you bind b to the value
> bound to a.member, i.e. you bind b to 10. Then you bind b to 5.

BTW, does any one know more strict/formal definition for the way Lua
values and variables are bound together (including assignment and
function argument / return value passing)?

Related questions are rather popular topic for people coming to Lua
from C++ side. I'd like to be able to aswer it better. :-)