- 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
- jQuery Mobile Web Development Essentials(Third Edition)
- C程序設計簡明教程(第二版)
- PHP程序設計(慕課版)
- Mastering Spring MVC 4
- 深入實踐Spring Boot
- JavaScript動態網頁開發詳解
- 微信小程序全棧開發技術與實戰(微課版)
- C++從入門到精通(第5版)
- 從零開始學C#
- 零基礎學Scratch 3.0編程
- Android Sensor Programming By Example
- 數據分析與挖掘算法:Python實戰
- Dart:Scalable Application Development
- Android 5從入門到精通
- Swift Essentials(Second Edition)