Lua 变量学习笔记
Lua 是一种动态弱类型语言,变量定义时不需要指定类型。在 Lua 中,变量被赋值后即被定义,而变量的值可以是任何类型。
变量赋值
Lua 中可以通过 =
进行变量赋值,例如:
luaCopy Codea = 10
b = "hello"
上述代码中,变量 a
被赋值为 10
,变量 b
被赋值为字符串 "hello"
。
同时也可以进行多个变量的同时赋值:
luaCopy Codex, y = 20, 30
上述代码中,变量 x
被赋值为 20
,变量 y
被赋值为 30
。
局部变量
在 Lua 中,局部变量可以通过 local
进行定义。局部变量的作用域仅限于当前代码块。例如:
luaCopy Codefunction foo()
local x = 10
print(x)
end
foo() -- 输出:10
print(x) -- 报错:attempt to call a nil value
在上述代码中,变量 x
被定义为局部变量,仅在函数 foo()
的作用域内有效。
变量类型
Lua 中的变量类型包括:
nil
:表示空值;boolean
:表示布尔值;number
:表示数字;string
:表示字符串;table
:表示表;function
:表示函数;thread
:表示协程;userdata
:表示自定义类型的数据。
变量作用域
在 Lua 中,变量的作用域分为全局和局部两种。全局变量可以在程序的任何位置被访问到,而局部变量只能在定义它的代码块内被访问。
luaCopy Code-- 全局变量
a = 10
function foo()
-- 局部变量
local a = 20
print(a)
end
foo() -- 输出:20
print(a) -- 输出:10
在上述代码中,变量 a
被定义为全局变量,在函数 foo()
中通过定义局部变量 a
的方式重新赋值。
实例
下面是一个实例,演示了 Lua 中的变量定义与使用:
luaCopy Code-- 定义全局变量
x = 10
y = 20
-- 定义函数
function add(a, b)
-- 定义局部变量
local sum = a + b
return sum
end
-- 调用函数并输出结果
s = add(x, y)
print(s) -- 输出:30
在上述代码中,通过定义全局变量 x
和 y
,以及函数 add()
,计算了 x
和 y
的和,并赋值给了局部变量 sum
,最后将计算结果返回。