[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: string.byte with empty string
- From: Peter Cawley <lua@...>
- Date: Sat, 24 Jan 2009 21:30:39 +0000
On Sat, Jan 24, 2009 at 9:08 PM, Alexander Gladysh <email@example.com> wrote:
> In Lua "to return zero values" is the same as to return nil.
No, they are not the same. The number of return values from a function
call is corrected to number of results which the caller is expecting
either by appending nils, or truncating the last value(s). In many
contexts, like assigning the results of a function to variables, or
performing a table index on the result of a function, the number of
results is set explicitly by the caller. In other contexts, like the
end of an argument list for function calls and table constructions, no
appending or truncating is done.
Hence the visible behaviour of returning zero values is the same
visible behaviour as returning nil, in certain contexts. In all
contexts, the non-visible behaviour is different, and in some
contexts, the visible behaviour is different.