-
Notifications
You must be signed in to change notification settings - Fork 5
Home
Dibyendu Majumdar edited this page Feb 20, 2020
·
9 revisions
Lua functions return multiple values. The caller has to decide how many values to accept.
-
If the function call is the last expression in a function argument list, or in a return statement, or in a table constructor then we have to allow unlimited values - which is represented by -1.
-
If the function call is in an assignment statement and is the last expression, then the number of return values to accept is equal to corresponding var plus an excess vars.
-
In all other cases the function return values are truncated to 1 result.
So when parsing we can by default set number of results to 1, but extend it for cases 1 and 2.