- 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
- 深入理解Android(卷I)
- MongoDB for Java Developers
- 實用防銹油配方與制備200例
- Git高手之路
- Apache Karaf Cookbook
- JavaScript by Example
- Asynchronous Android Programming(Second Edition)
- JavaCAPS基礎、應用與案例
- Python語言實用教程
- Clojure High Performance Programming(Second Edition)
- 軟件測試分析與實踐
- HTML5 Canvas核心技術:圖形、動畫與游戲開發
- React.js實戰
- Swift iOS Programming for Kids
- Learning Yeoman