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

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.
主站蜘蛛池模板: 江西省| 长泰县| 乌鲁木齐市| 安西县| 南华县| 九江市| 肥东县| 闸北区| 义乌市| 藁城市| 兰考县| 屏山县| 泰兴市| 开江县| 米泉市| 桐城市| 邻水| 黎平县| 永定县| 鹰潭市| 福清市| 红安县| 蕲春县| 米易县| 吉隆县| 万宁市| 营山县| 广汉市| 郁南县| 清镇市| 修武县| 赣榆县| 福州市| 历史| 大洼县| 巴彦县| 满洲里市| 绍兴市| 台北县| 延长县| 沐川县|