Lua local function与function区别

来源:互联网 发布:2017淘宝买不到qq号了 编辑:程序博客网 时间:2024/06/05 18:34
 

Lua local function与function区别

标签: lua函数
 3736人阅读 评论(0) 收藏 举报
 分类:

1 使用function声明的函数为全局函数,在被引用时可以不会因为声明的顺序而找不到 
2 使用local function声明的函数为局部函数,在引用的时候必须要在声明的函数后面

例子: 
下面这段代码会报函数找不到的错误:lua: test.lua:3: attempt to call global ‘test1’ (a nil value)

function test()    test2()    test1()endlocal function test1()    print("hello test1")endfunction test2()    print("hello test2")endtest()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

改为一下两种方式就可以正常运行

1 local function的声明放在引用的前面

local function test1()    print("hello test1")endfunction test()    test2()    test1()endfunction test2()    print("hello test2")endtest()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2 local function声明使用function方式

function test()    test2()    test1()endfunction test1()    print("hello test1")endfunction test2()    print("hello test2")endtest()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15