Lua中返回值的丢失问题
-- 如果函数调用所得的多个返回值是另外一个函数的最后一个参数,或者是多指派表达式中的最后一个参数时,所有返回值将被传入或使用。
-- 否则只有第一个返回值被使用或指定。
1 ToRGB = function (ys) 2 local red = string.sub(ys,1,2) 3 local green = string.sub(ys,3,4) 4 local blue = string.sub(ys,5,6) 5 red = tonumber(red,16) --将16进制的字符串red 转换为数字即十进制 6 green = tonumber(green,16) 7 blue = tonumber(blue ,16) 8 return red,green,blue 9 end
-- 如果函数调用所得的多个返回值 是 另外一个函数的最后一个参数 。否则,只有第一个返回值被指定或使用)
1 print("数学","机器人",ToRGB("FFCC99")) -- 输出 “数学”,“机器人”,255,204,153 2 print("数学",ToRGB("FFCC99"),"机器人") -- 输出 “数学”,255,“机器人”
-- 是多指派表达式中最后一个参数时,所有返回值将被传入或使用 。否则,只有一个返回值被指定或使用
1 x,y,z,w = "语文",ToRGB("FFCC99") -- 返回值全部被传入和使用 2 a,b,c,d = ToRGB("FFCC99"),"语文" -- 只有第一个返回值被指定或使用 3 print(x,y,z,w) -- 语文 255 204 153 4 print(a,b,c,d) -- 255 语文 nil nil