假设有下面的函数:
- function ReturnArgs(Arg1, Arg2, Arg3)
- return Arg1, Arg2, Arg3
- end
复制代码
比较下面的例子:
- print (ReturnArgs(1, 2, 3))
复制代码
输出结果:
- print(ReturnArgs(ReturnArgs(1, 2, 3)))
复制代码
输出结果:
返回值个数和接收变量的个数相等时:
- A, B, C = ReturnArgs("hello", "lua", "world")
- print(A, B, C)
复制代码
输出结果:
- print(1, ReturnArgs("a", "b", "c"))
复制代码
输出结果:
- print(ReturnArgs(1, 2, 3), "a")
复制代码
输出结果:
不像想象中的那样输出 1 2 3 a 。
- print(ReturnArgs(1, 2, 3), ReturnArgs("a", "b", "c"))
复制代码
输出结果:
规则:如果一个有多个返回值的函数(如 ReturnArgs())在一个指列表中作为最后一个表达式时,该函数的所有返回值都会被使用。反之,只有第一个返回值被使用,其余的返回值被忽略。再比较下面的代码:
- print (
- ReturnArgs(1, 2, 3),
- ReturnArgs(4, 5, 6),
- ReturnArgs(7, 8, 9),
- ReturnArgs(10, 11, 12)
- )
复制代码
输出结果:
假如要强制值列表中的具有多返回值的函数只返回 1 个值,那么可以用括号将该函数括起来,这样可以达到强制其只返回一个值的目的,比如将上面的 ReturnArgs(10, 11, 12) 改为 (ReturnArgs(10, 11, 12)) 。
|