Lua中返回值的丢失问题

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

猜你喜欢

转载自www.cnblogs.com/mengmengxia/p/9257699.html