官术网_书友最值得收藏!

  • Lua Quick Start Guide
  • Gabor Szauer
  • 256字
  • 2021-08-05 10:30:40

Returning multiple values

Lua has a unique feature that many traditional languages don't, multiple return values. This feature allows one function to return multiple values. To return multiple values, assign the result of the function to a list of variables separated by commas.

For example, you could write a function that takes a number for an argument and returns both the squared and cubed values of that number:

-- Declare the function
function SquareAndCube(x)
squared = x * x
cubed = x * x * x
return squared, cubed
end

-- Call the function
s, c = SquareAndCube(2)
print ("Squared: " .. s) -- will print: Squared: 4
print ("Cubed: " .. c) -- will print: Cubed: 8

Like with function arguments, the number of values a function returns does not have to match the number of variables it is assigned to. What happens if you return two values, but try to assign them to three variables? The extra variables will have a default value of nil:

s, c, q = SquareAndCube(2) -- Call the same function
print ("Squared: " .. s) -- will print: Squared: 4
print ("Cubed: " .. c) -- will print: Cubed: 8
print ("Quartic: " .. tostring(q)) -- will print: Quartic: nil

Similarly, you can return two values and try to assign them to a single variable. In this case, the first value is assigned and the rest of the variables are discarded. The following code demonstrates this:

square = SquareAndCube(2) -- Call the same function
-- rest of results are discarded
print ("Squared: " .. square) -- will print: Squared: 4
主站蜘蛛池模板: 彭水| 枝江市| 道真| 广宗县| 新和县| 合阳县| 漠河县| 马龙县| 灵石县| 从江县| 民丰县| 乌拉特后旗| 游戏| 象州县| 泽库县| 松原市| 平塘县| 齐齐哈尔市| 左贡县| 博客| 阿图什市| 宝丰县| 祥云县| 德兴市| 永嘉县| 湖南省| 岐山县| 刚察县| 仲巴县| 黔西县| 高碑店市| 垦利县| 临清市| 乌拉特前旗| 南阳市| 上高县| 广东省| 嫩江县| 扎鲁特旗| 库尔勒市| 桐城市|