Lua local function与function区别

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

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

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

  

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

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

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

2 local function声明使用function方式

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

  

posted @   番茄土豆西红柿  阅读(8954)  评论(0)    收藏  举报
编辑推荐:
· 记一次 .NET某云HIS系统 CPU爆高分析
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 电商平台中订单未支付过期如何实现自动关单?
· 用 .NET NativeAOT 构建完全 distroless 的静态链接应用
阅读排行:
· 一款让 Everything 更加如虎添翼的 .NET 开源辅助工具!
· (原创)[开源][.Net Framework 4.5] SimpleMVVM(极简MVVM框架)更
· 冲压车间软件实施
· 干货分享!MCP 实现原理,小白也能看懂
· 精选 4 款免费且实用的数据库管理工具,程序员必备!
TOP
点击右上角即可分享
微信分享提示