- 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
- LabVIEW2018中文版 虛擬儀器程序設計自學手冊
- Arduino by Example
- 摩登創客:與智能手機和平板電腦共舞
- Access 數據庫應用教程
- Hands-On Image Processing with Python
- C#完全自學教程
- 區塊鏈架構與實現:Cosmos詳解
- 單片機C語言程序設計實訓100例
- Scala Reactive Programming
- 計算機應用基礎案例教程
- 新一代SDN:VMware NSX 網絡原理與實踐
- R Data Science Essentials
- Java高并發編程詳解:深入理解并發核心庫
- INSTANT Apache Hive Essentials How-to
- Learning Cocos2d-JS Game Development