lua-users home
lua-l archive

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


On Wed, Jul 15, 2015 at 7:37 PM, Nan Xiao <xiaonan830818@gmail.com> wrote:
> Hi all,
>
> After reading pil, I know adding an extra parentheses can let function
> return only one return value:
>
> function f()
>         return 1, 2
> end
>
> print(f())   --> 1, 2
> print((f()))  --> 1
>
> But the pil doesn't tell the reason behind it.
>
> Could anyone explain it? Thanks very much in advance!
>
> Best Regards
> Nan Xiao

It's pretty simple: (f()) is an expression, not a function call
(though it of course CONTAINS a function call), and expressions always
return a single value. You could also say f() + 0.

/s/ Adam