分享

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

 quasiceo 2014-01-17
分类: Lua 2008-12-11 14:33 795人阅读 评论(0) 收藏 举报
结论:在Lua中,没有包含返回语句的function在调用时,返回值是 nil。


示例代码如下
  1. function run()

  2.         local a = 10

  3.         -- return a
  4. end

  5. ret = run()

  6. if ret == "" then
  7.         print("Return null string.")
  8. elseif ret == nil then
  9.         print("Return nil.")
  10. else
  11.         print("return other value.")
  12. end
  13. print(ret)

  14. if run() == "" then
  15.         print("Return null string.")
  16. elseif run() == nil then
  17.         print("Return nil.")
  18. else
  19.         print("return other value.")
  20. end

  21. print(run() )
  22. print(run() + 5)



输出结果为:

  1. Return nil.
  2. nil
  3. Return nil.


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


注意,上例中,在 print(run()) 的时候,输出为一个空行,估计是print对函数返回值为nil时忽略了要打印的nil,print的问题,而不是“函数没有任何返回值”。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多