- 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
- 深入淺出WPF
- Groovy for Domain:specific Languages(Second Edition)
- Getting Started with NativeScript
- Learning Concurrency in Kotlin
- 細說Python編程:從入門到科學計算
- Qt5 C++ GUI Programming Cookbook
- Java 9 Programming By Example
- 數據結構:Python語言描述
- Python深度學習(第2版)
- 現代C++語言核心特性解析
- 詩意的邊緣
- .NET應用架構設計:原則、模式與實踐
- Python High Performance(Second Edition)
- Boost.Asio C++ Network Programming Cookbook
- 設計模式之禪