Lua local function与function区别

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

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

function test()
    test2()
    test1()
end

local function test1()
    print("hello test1")
end

function test2()
    print("hello test2")
end

test()

  

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

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

local function test1()
    print("hello test1")
end

function test()
    test2()
    test1()
end

function test2()
    print("hello test2")
end

test()

2 local function声明使用function方式

function test()
    test2()
    test1()
end

function test1()
    print("hello test1")
end

function test2()
    print("hello test2")
end

test()

  

posted @ 2017-11-21 12:10  番茄土豆西红柿  阅读(8836)  评论(0编辑  收藏  举报
TOP