您的位置:首页 > 编程语言 > Lua

Lua中没有返回语句的function会返回什么?

2008-12-11 14:33 453 查看
结论:在Lua中,没有包含返回语句的function在调用时,返回值是 nil。

示例代码如下
function run()

local a = 10

-- return a
end

ret = run()

if ret == "" then
print("Return null string.")
elseif ret == nil then
print("Return nil.")
else
print("return other value.")
end
print(ret)

if run() == "" then
print("Return null string.")
elseif run() == nil then
print("Return nil.")
else
print("return other value.")
end

print(run() )
print(run() + 5)

输出结果为:

Return nil.
nil
Return nil.

lua: funret.lua:30: attempt to perform arithmetic on a nil value
stack traceback:
funret.lua:30: in main chunk
[C]: ?

注意,上例中,在 print(run()) 的时候,输出为一个空行,估计是print对函数返回值为nil时忽略了要打印的nil,print的问题,而不是“函数没有任何返回值”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐