Lua中函数可以返回多个值,为了说明不同情况下,返回值的个数,我们先声明如下几个函数:
通常情况下,Lua会根据函数调用的不同情况自动调整返回值的有效个数。主要有以下几种情况:
1. 调用作为单独语句,则丢弃所有返回值;
例如:
2. 调用作为表达式,又可分为两种情况:
2.1 如果处于表达式串中除了2.2之外的情况,则只有第一个返回值被返回;
例如:
2.2 在多赋值,返
-- 无返回值function fun0() end-- 一个返回值function fun1() return 1end-- 二个返回值function fun2() return 1, 2end-- 三个及多个返回值function fun3() return 1, 2, 3end
通常情况下,Lua会根据函数调用的不同情况自动调整返回值的有效个数。主要有以下几种情况:
1. 调用作为单独语句,则丢弃所有返回值;
例如:
fun0()fun1()fun2()fun3()
2. 调用作为表达式,又可分为两种情况:
2.1 如果处于表达式串中除了2.2之外的情况,则只有第一个返回值被返回;
例如:
if (fun2() == 1) then -- 只返回1 print(fun2()) -- 打印1, 2 print(fun2(), "end") -- 打印1, "end" -- 如果想强制只返回一个值,则可以用括号 "()" 把表达式括起来即可: print((fun2())) -- 打印1end
2.2 在多赋值,返