Lua变量作用域

Lua变量作用域教程

Lua 中的一个 变量 在程序中都有一定的作用范围,我们称之为作用域。Lua 变量有三种类型:全局变量、局部变量、表中的域。

Lua局部变量

Lua 中的变量全是全局变量,哪怕是语句块或是函数里,除非用 local 显式声明为局部变量。

Lua全局变量

局部变量的作用域为从声明位置开始到所在语句块结束。

案例

全局变量

lua 中默认全是全局变量

#!/usr/bin/lua print("haicoder(www.haicoder.net)\n") a = 1024 function pi() pi = 3.14159 name = "haicoder" end pi() print("a =", a, "pi =", pi, "name =", name)

程序运行后,控制台输出如下:

17_Lua变量作用域.png

我们首先定义了一个全局变量 a,接着在函数里面也定义了两个全局变量,分别为 pi 和 name,我们可以看到,虽然变量 pi 和 name 是定义在函数里面的,但我们在函数外部一样可以访问,因为这两个变量也是全局变量。

在 lua 中,变量默认都是全局变量,不论其定义的位置。

局部变量

在 lua 中,定义局部变量需要使用 local 关键字

#!/usr/bin/lua print("haicoder(www.haicoder.net)\n") local a = 1024 function pi() pi = 3.14159 local name = "haicoder" end pi() print("a =", a, "pi =", pi) print("name =", name)

程序运行后,控制台输出如下:

18_Lua变量作用域.png

在 lua 中,定义局部变量使用 local 关键字,我们可以看到,我们在函数里面定义了局部变量 name,在函数外部访问,结果为 nil。

Lua变量作用域总结

Lua 中的一个变量在程序中都有一定的作用范围,我们称之为作用域。Lua 变量有三种类型:全局变量、局部变量、表中的域。

Lua 中的变量全是全局变量,哪怕是语句块或是函数里,除非用 local 显式声明为局部变量。局部变量的作用域为从声明位置开始到所在语句块结束。