[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Functions Without Returns
- From: Matthew Paul Del Buono <delbu9c1@...>
- Date: Fri, 25 Jan 2008 14:52:38 -0500 (EST)
The reason is quite simple actually. Lua normalizes returns. If a function does not return enough values to fill all of the variables, then those variables get filled with nil:
local a,b,c = foo();
a and b will be 1 and 2, respectively, as expected, but c will be nil. It can't be "nothing" ... it's a variable.
You're encountering something similar:
local bar = foo();
The first prints nil, because bar IS nil. A variable can't be nothing. foo(), however, returns nothing. When you run tostring() on it, nothing is passed to it. It is the same as doing tostring(), which is illegal. That is why the error arises.
-- Matthew P. Del Buono a.k.a. Shirik