【Lua语言学习04】Lua变量,访问局部变量比全局变量更快

本文介绍了Lua中的变量类型,包括全局、局部和表中的域,强调了局部变量的访问速度优势和避免命名冲突的重要性。同时,详细阐述了Lua的赋值语句,如多变量同时赋值和变量交换技巧,并展示了在值数量不匹配时的处理策略。此外,还提及了如何在table中通过键值进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Lua变量有三种类型:全局,局部,表中的域

Lua变量不加local 都是全局变量

例如:

--test.lua文件脚本
a = 5                   --全局变量
local b = 5             --局部变量

function joke()
    c = 5               --全局变量
    local d = 6         --局部变量
end

joke()
print(c,d)              --5 nil

do
    local a = 6         --局部变量
    b = 6               --对局部变量赋值
    print(a,b)          --6 6
end

print(a,b)              --5 6

结果:

5    nil
6    6
5    6
[Finished in 0.1s]

赋值语句

lua可以对多个变量同时赋值,右边的值依次赋给左边的变量

例如:

a,b = 10,2*x        --相当于a=10 b=2*x

可以利用多变量同时赋值的原理可以实现变量值互换

例如:

x,y = y,x           --相当于把y的值赋给x,x的值赋给y

当遇到变量个数  和要赋的值不一致时,Lua会以变量个数为基础采取以下策略


a. 变量个数 > 值的个数             按变量个数补足nil
b. 变量个数 < 值的个数             多余的值会被忽略

例如:

a,b,c = 1
print(a,b,c)
a,b = a+1,a+1,a+1
print(a,b)

结果:

1   nil nil
2   2
[Finished in 0.1s]

在做这个实验室,a = 1 b,c为nil,nil类型值不能参与运算,会报错

在Lua大神的经验中,可以得出一个结论:

  1. 避免命名冲突,尽量使用局部变量。
  2. 访问局部变量的速度比全局变量更快。

索引

在table表里,可以使用 [table].[键值]来操作

比如:

> site = {}
> site["key"] = "www.toutiao.com"
> print(site["key"])
www.toutiao.com
> print(site.key)
www.toutiao.com

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值