曲径通幽论坛
标题:
函数的多重返回值
[打印本页]
作者:
beyes
时间:
2014-11-23 23:55
标题:
函数的多重返回值
假设有下面的函数:
function ReturnArgs(Arg1, Arg2, Arg3)
return Arg1, Arg2, Arg3
end
复制代码
比较下面的例子:
print (ReturnArgs(1, 2, 3))
复制代码
输出结果:
1 2 3
print(ReturnArgs(ReturnArgs(1, 2, 3)))
复制代码
输出结果:
1 2 3
返回值个数和接收变量的个数相等时:
A, B, C = ReturnArgs("hello", "lua", "world")
print(A, B, C)
复制代码
输出结果:
hello lua world
print(1, ReturnArgs("a", "b", "c"))
复制代码
输出结果:
1 a b c
print(ReturnArgs(1, 2, 3), "a")
复制代码
输出结果:
1 a
不像想象中的那样输出 1 2 3 a 。
print(ReturnArgs(1, 2, 3), ReturnArgs("a", "b", "c"))
复制代码
输出结果:
1 a b c
规则
:如果一个有多个返回值的函数(如 ReturnArgs())在一个指列表中作为最后一个表达式时,该函数的所有返回值都会被使用。反之,只有第一个返回值被使用,其余的返回值被忽略。再比较下面的代码:
print (
ReturnArgs(1, 2, 3),
ReturnArgs(4, 5, 6),
ReturnArgs(7, 8, 9),
ReturnArgs(10, 11, 12)
)
复制代码
输出结果:
1 4 7 10 11 12
假如要强制值列表中的具有多返回值的函数只返回 1 个值,那么可以用括号将该函数括起来,这样可以达到强制其只返回一个值的目的,比如将上面的 ReturnArgs(10, 11, 12) 改为 (ReturnArgs(10, 11, 12)) 。
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/)
Powered by Discuz! X3.2