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

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

Returning a value

Functions don't just take input, they can also return some output to the calling code. This is done through a return value. When a function returns a value, it can be called as part of an expression or as a standalone statement.

If a function is called as a part of an expression, its return value can be assigned to a variable, or used wherever a variable could be used. The following code demonstrates this concept:

-- declare the function
function AddTwo(x)
result = x + 2
print (x .. " + 2 = " .. result)
return result
end

AddTwo(3) -- calls as statement
nine = 7 + AddTwo(5) -- Call as expression
print ("adding two " .. AddTwo(3)) -- Call as expression

When a function hits a return statement, it returns whatever data follows and stops executing. If you have code after your return statement, that code will not execute, for example:

-- Declare the function
function SquareIt(number)
result = number * number
print ("this will print") -- WILL PRINT!
do
return result
end
print ("this will not print") -- WILL NOT PRINT
end

-- Call the function
four = SquareIt(2) -- Will print: this will print
print(four) -- Will print: 4
Why is the return value inside of a do/end block? In Lua, the return keyword is only valid when followed by the end keyword. Without the do/end block around the return statement, this code would not compile, because following a return with a print statement is not valid.
主站蜘蛛池模板: 治多县| 卢湾区| 胶州市| 玛纳斯县| 个旧市| 辽宁省| 库伦旗| 潞城市| 怀宁县| 蒙城县| 盐城市| 乌拉特后旗| 吉安市| 汝南县| 西峡县| 玉田县| 康乐县| 巴中市| 绥芬河市| 安吉县| 武清区| 美姑县| 吉水县| 梧州市| 冀州市| 蓝山县| 克拉玛依市| 兴义市| 资兴市| 通道| 盘山县| 台山市| 当雄县| 双峰县| 水富县| 健康| 潜山县| 宁安市| 鹤峰县| 兴业县| 望城县|